ui_language_test.go 2.2 KB
Newer Older
雨爱无痕 已提交
1 2 3 4 5
package main

import (
	"testing"

雨爱无痕 已提交
6 7
	"github.com/ozontech/allure-go/pkg/framework/provider"
	"github.com/ozontech/allure-go/pkg/framework/runner"
雨爱无痕 已提交
8 9 10 11 12
	playwright "github.com/playwright-community/playwright-go"
)

var languageBrowser playwright.Browser

雨爱无痕 已提交
13
func SwitchLanguage(t provider.T) {
雨爱无痕 已提交
14 15
	t.ID("5464")
	t.AddParentSuite("设置界面语言")
雨爱无痕 已提交
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
	pw, err := playwright.Run()
	if err != nil {
		t.Error(err)
		t.FailNow()
	}
	headless := true
	var slowMo float64 = 100
	if languageBrowser == nil || !languageBrowser.IsConnected() {
		languageBrowser, err = pw.Chromium.Launch(playwright.BrowserTypeLaunchOptions{Headless: &headless, SlowMo: &slowMo})
	}
	if err != nil {
		t.Errorf("Fail to launch the web languageBrowser: %v", err)
		t.FailNow()
	}
	page, err := languageBrowser.NewPage()
	if err != nil {
		t.Errorf("Create the new page fail: %v", err)
		t.FailNow()
	}
雨爱无痕 已提交
35
	if _, err = page.Goto("http://127.0.0.1:8000/", playwright.PageGotoOptions{
雨爱无痕 已提交
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
		WaitUntil: playwright.WaitUntilStateDomcontentloaded}); err != nil {
		t.Errorf("The specific URL is missing: %v", err)
		t.FailNow()
	}

	err = page.Click("#navbar>>[title=\"设置\"]")
	if err != nil {
		t.Errorf("The Click language nav fail: %v", err)
		t.FailNow()
	}
	err = page.Click(`input[type="radio"]>>nth=1`)
	locator, err := page.Locator(".t-card-toolbar div")
	interpreterTitle, err := locator.InnerText()
	if interpreterTitle != "Interpreter" {
		t.Error("Switch language fail")
		t.FailNow()
	}
	locator, err = page.Locator(".t-card-toolbar button")
	CreateInterpreterTitle, err := locator.InnerText()
	if CreateInterpreterTitle != "Create Interpreter" {
		t.Error("Switch language fail")
		t.FailNow()
	}
	locator, err = page.Locator("#settingModal .modal-title")
	modalTitle, err := locator.InnerText()
	if modalTitle != "Settings" {
		t.Error("Switch language fail")
		t.FailNow()
	}
	err = page.Click(`input[type="radio"]>>nth=0`)
	if err = languageBrowser.Close(); err != nil {
		t.Errorf("The languageBrowser cannot be closed: %v", err)
		t.FailNow()
	}
	if err = pw.Stop(); err != nil {
		t.Errorf("The playwright cannot be stopped: %v", err)
		t.FailNow()
	}
}

func TestUiLanguage(t *testing.T) {
雨爱无痕 已提交
77
	runner.Run(t, "设置界面语言", SwitchLanguage)
雨爱无痕 已提交
78
}