ui_workspace_test.go 33.4 KB
Newer Older
雨爱无痕 已提交
1 2 3
package main

import (
雨爱无痕 已提交
4
	"os"
雨爱无痕 已提交
5 6
	"testing"

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

雨爱无痕 已提交
13
var pw, err = os.Getwd()
雨爱无痕 已提交
14
var (
雨爱无痕 已提交
15
	workspacePath = pw + "\\demo\\php"
雨爱无痕 已提交
16 17
)

雨爱无痕 已提交
18
func CreateWorkspace(t provider.T) {
雨爱无痕 已提交
19 20
	t.ID("5468")
	t.AddParentSuite("管理禅道站点下工作目录")
雨爱无痕 已提交
21 22 23
	pw, err := playwright.Run()
	if err != nil {
		t.Error(err)
雨爱无痕 已提交
24
		t.FailNow()
雨爱无痕 已提交
25 26 27
	}
	headless := true
	var slowMo float64 = 100
雨爱无痕 已提交
28
	workspaceBrowser, err := pw.Chromium.Launch(playwright.BrowserTypeLaunchOptions{Headless: &headless, SlowMo: &slowMo})
雨爱无痕 已提交
29
	if err != nil {
雨爱无痕 已提交
30 31
		t.Errorf("Fail to launch the web workspaceBrowser: %v", err)
		t.FailNow()
雨爱无痕 已提交
32
	}
雨爱无痕 已提交
33
	page, err := workspaceBrowser.NewPage()
雨爱无痕 已提交
34 35
	if err != nil {
		t.Errorf("Create the new page fail: %v", err)
雨爱无痕 已提交
36
		t.FailNow()
雨爱无痕 已提交
37
	}
Save  
雨爱无痕 已提交
38
	if _, err = page.Goto("http://127.0.0.1:8081/", playwright.PageGotoOptions{
雨爱无痕 已提交
39
		WaitUntil: playwright.WaitUntilStateDomcontentloaded}); err != nil {
雨爱无痕 已提交
40
		t.Errorf("The specific URL is missing: %v", err)
雨爱无痕 已提交
41
		t.FailNow()
雨爱无痕 已提交
42 43
	}

雨爱无痕 已提交
44
	locator, err := page.Locator("#siteMenuToggle")
雨爱无痕 已提交
45 46
	if err != nil {
		t.Errorf("The siteMenuToggle is missing: %v", err)
雨爱无痕 已提交
47
		t.FailNow()
雨爱无痕 已提交
48
	}
雨爱无痕 已提交
49
	err = locator.Click()
雨爱无痕 已提交
50 51
	if err != nil {
		t.Errorf("The Click is fail: %v", err)
雨爱无痕 已提交
52
		t.FailNow()
雨爱无痕 已提交
53 54 55 56
	}
	_, err = page.WaitForSelector("#navbar .list-item")
	if err != nil {
		t.Errorf("Wait for workspace list nav fail: %v", err)
雨爱无痕 已提交
57
		t.FailNow()
雨爱无痕 已提交
58
	}
雨爱无痕 已提交
59
	err = page.Click(".list-item-title>>text=单元测试站点")
雨爱无痕 已提交
60 61
	if err != nil {
		t.Errorf("The Click workspace nav fail: %v", err)
雨爱无痕 已提交
62
		t.FailNow()
雨爱无痕 已提交
63 64 65 66 67
	}

	err = page.Click(`[title="新建工作目录"]`)
	if err != nil {
		t.Errorf("The Click create workspace fail: %v", err)
雨爱无痕 已提交
68
		t.FailNow()
雨爱无痕 已提交
69 70
	}
	_, err = page.WaitForSelector("#workspaceFormModal")
雨爱无痕 已提交
71
	locator, err = page.Locator("#workspaceFormModal input")
雨爱无痕 已提交
72 73
	if err != nil {
		t.Errorf("Find create workspace input fail: %v", err)
雨爱无痕 已提交
74
		t.FailNow()
雨爱无痕 已提交
75
	}
雨爱无痕 已提交
76
	titleInput, err := locator.Nth(0)
雨爱无痕 已提交
77 78
	if err != nil {
		t.Errorf("Find title input fail: %v", err)
雨爱无痕 已提交
79
		t.FailNow()
雨爱无痕 已提交
80 81 82 83
	}
	err = titleInput.Fill("单元测试工作目录")
	if err != nil {
		t.Errorf("Fil title input fail: %v", err)
雨爱无痕 已提交
84
		t.FailNow()
雨爱无痕 已提交
85
	}
雨爱无痕 已提交
86
	pathInput, err := locator.Nth(1)
雨爱无痕 已提交
87 88
	if err != nil {
		t.Errorf("Find address input fail: %v", err)
雨爱无痕 已提交
89
		t.FailNow()
雨爱无痕 已提交
90 91 92 93
	}
	err = pathInput.Fill(workspacePath)
	if err != nil {
		t.Errorf("Fil address input fail: %v", err)
雨爱无痕 已提交
94
		t.FailNow()
雨爱无痕 已提交
95
	}
雨爱无痕 已提交
96
	locator, err = page.Locator("#workspaceFormModal select")
雨爱无痕 已提交
97 98
	if err != nil {
		t.Errorf("Find create workspace select fail: %v", err)
雨爱无痕 已提交
99
		t.FailNow()
雨爱无痕 已提交
100
	}
雨爱无痕 已提交
101
	typeInput, err := locator.Nth(0)
雨爱无痕 已提交
102 103
	if err != nil {
		t.Errorf("Find name input fail: %v", err)
雨爱无痕 已提交
104
		t.FailNow()
雨爱无痕 已提交
105
	}
雨爱无痕 已提交
106
	_, err = typeInput.SelectOption(playwright.SelectOptionValues{Values: &[]string{commonTestHelper.GetZtfPath() + ""}})
雨爱无痕 已提交
107 108
	if err != nil {
		t.Errorf("Fil name input fail: %v", err)
雨爱无痕 已提交
109
		t.FailNow()
雨爱无痕 已提交
110
	}
雨爱无痕 已提交
111
	langInput, err := locator.Nth(1)
雨爱无痕 已提交
112 113
	if err != nil {
		t.Errorf("Find lang input fail: %v", err)
雨爱无痕 已提交
114
		t.FailNow()
雨爱无痕 已提交
115
	}
雨爱无痕 已提交
116
	_, err = langInput.SelectOption(playwright.SelectOptionValues{Values: &[]string{"php"}})
雨爱无痕 已提交
117 118
	if err != nil {
		t.Errorf("Fil lang input fail: %v", err)
雨爱无痕 已提交
119
		t.FailNow()
雨爱无痕 已提交
120 121 122 123
	}
	err = page.Click("#workspaceFormModal>>.modal-action>>span:has-text(\"确定\")")
	if err != nil {
		t.Errorf("The Click submit form fail: %v", err)
雨爱无痕 已提交
124 125 126 127 128 129 130
		t.FailNow()
	}
	var waitTimeOut float64 = 5000
	_, err = page.WaitForSelector(".tree-node", playwright.PageWaitForSelectorOptions{Timeout: &waitTimeOut})
	if err != nil {
		t.Errorf("Wait created workspace result fail: %v", err)
		t.FailNow()
雨爱无痕 已提交
131
	}
雨爱无痕 已提交
132 133
	locator, err = page.Locator(".tree-node-title", playwright.PageLocatorOptions{HasText: "单元测试工作目录"})
	c, err := locator.Count()
雨爱无痕 已提交
134 135
	if err != nil || c == 0 {
		t.Errorf("Find created workspace fail: %v", err)
雨爱无痕 已提交
136
		t.FailNow()
雨爱无痕 已提交
137
	}
雨爱无痕 已提交
138 139 140 141

	if err = workspaceBrowser.Close(); err != nil {
		t.Errorf("The workspaceBrowser cannot be closed: %v", err)
		t.FailNow()
雨爱无痕 已提交
142 143 144
	}
	if err = pw.Stop(); err != nil {
		t.Errorf("The playwright cannot be stopped: %v", err)
雨爱无痕 已提交
145
		t.FailNow()
雨爱无痕 已提交
146 147 148
	}
}

雨爱无痕 已提交
149
func SyncFromZentao(t provider.T) {
雨爱无痕 已提交
150 151
	t.ID("5468")
	t.AddParentSuite("管理禅道站点下工作目录")
雨爱无痕 已提交
152 153 154
	pw, err := playwright.Run()
	if err != nil {
		t.Error(err)
雨爱无痕 已提交
155
		t.FailNow()
雨爱无痕 已提交
156 157 158
	}
	headless := true
	var slowMo float64 = 100
雨爱无痕 已提交
159
	workspaceBrowser, err := pw.Chromium.Launch(playwright.BrowserTypeLaunchOptions{Headless: &headless, SlowMo: &slowMo})
雨爱无痕 已提交
160
	if err != nil {
雨爱无痕 已提交
161 162
		t.Errorf("Fail to launch the web workspaceBrowser: %v", err)
		t.FailNow()
雨爱无痕 已提交
163
	}
雨爱无痕 已提交
164
	page, err := workspaceBrowser.NewPage()
雨爱无痕 已提交
165 166
	if err != nil {
		t.Errorf("Create the new page fail: %v", err)
雨爱无痕 已提交
167
		t.FailNow()
雨爱无痕 已提交
168
	}
Save  
雨爱无痕 已提交
169
	if _, err = page.Goto("http://127.0.0.1:8081/", playwright.PageGotoOptions{
雨爱无痕 已提交
170
		WaitUntil: playwright.WaitUntilStateDomcontentloaded}); err != nil {
雨爱无痕 已提交
171
		t.Errorf("The specific URL is missing: %v", err)
雨爱无痕 已提交
172
		t.FailNow()
雨爱无痕 已提交
173
	}
雨爱无痕 已提交
174 175
	var waitTimeOut float64 = 5000
	_, err = page.WaitForSelector(".tree-node", playwright.PageWaitForSelectorOptions{Timeout: &waitTimeOut})
雨爱无痕 已提交
176
	if err != nil {
雨爱无痕 已提交
177 178
		CreateWorkspace(t)
		SyncFromZentao(t)
雨爱无痕 已提交
179 180
		return
	}
雨爱无痕 已提交
181 182
	locator, err := page.Locator(".tree-node", playwright.PageLocatorOptions{HasText: "单元测试工作目录"})
	c, err := locator.Count()
雨爱无痕 已提交
183
	if err != nil || c == 0 {
雨爱无痕 已提交
184 185 186
		CreateWorkspace(t)
		SyncFromZentao(t)
		return
雨爱无痕 已提交
187
	}
雨爱无痕 已提交
188
	locator.Click(playwright.PageClickOptions{Button: playwright.MouseButtonRight})
雨爱无痕 已提交
189 190
	if err != nil {
		t.Errorf("Right click node fail: %v", err)
雨爱无痕 已提交
191
		t.FailNow()
雨爱无痕 已提交
192 193 194 195
	}
	page.Click(".tree-context-menu>>text=从禅道同步")
	if err != nil {
		t.Errorf("Click sync from zentao fail: %v", err)
雨爱无痕 已提交
196
		t.FailNow()
雨爱无痕 已提交
197 198 199 200
	}
	_, err = page.WaitForSelector("#syncFromZentaoFormModal .z-tbody-checkbox")
	if err != nil {
		t.Errorf("Wait syncFromZentaoFormModal fail: %v", err)
雨爱无痕 已提交
201
		t.FailNow()
雨爱无痕 已提交
202 203 204 205
	}
	err = page.Click("#syncFromZentaoFormModal>>.modal-action>>span:has-text(\"确定\")")
	if err != nil {
		t.Errorf("The Click submit form fail: %v", err)
雨爱无痕 已提交
206
		t.FailNow()
雨爱无痕 已提交
207 208 209 210
	}
	_, err = page.WaitForSelector("#syncFromZentaoFormModal", playwright.PageWaitForSelectorOptions{State: playwright.WaitForSelectorStateHidden})
	if err != nil {
		t.Errorf("Wait syncFromZentaoFormModal hide fail: %v", err)
雨爱无痕 已提交
211
		t.FailNow()
雨爱无痕 已提交
212
	}
雨爱无痕 已提交
213 214
	locator, err = page.Locator(".toast-notification-container", playwright.PageLocatorOptions{HasText: "成功从禅道同步"})
	c, err = locator.Count()
雨爱无痕 已提交
215 216
	if err != nil || c == 0 {
		t.Errorf("Sync from zentao fail: %v", err)
雨爱无痕 已提交
217
		t.FailNow()
雨爱无痕 已提交
218
	}
雨爱无痕 已提交
219 220 221 222

	if err = workspaceBrowser.Close(); err != nil {
		t.Errorf("The workspaceBrowser cannot be closed: %v", err)
		t.FailNow()
雨爱无痕 已提交
223 224 225
	}
	if err = pw.Stop(); err != nil {
		t.Errorf("The playwright cannot be stopped: %v", err)
雨爱无痕 已提交
226
		t.FailNow()
雨爱无痕 已提交
227 228
	}
}
229

雨爱无痕 已提交
230
func SyncTwoCaseFromZentao(t provider.T) {
雨爱无痕 已提交
231 232
	t.ID("5468")
	t.AddParentSuite("管理禅道站点下工作目录")
233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249
	pw, err := playwright.Run()
	if err != nil {
		t.Error(err)
		t.FailNow()
	}
	headless := true
	var slowMo float64 = 100
	workspaceBrowser, err := pw.Chromium.Launch(playwright.BrowserTypeLaunchOptions{Headless: &headless, SlowMo: &slowMo})
	if err != nil {
		t.Errorf("Fail to launch the web workspaceBrowser: %v", err)
		t.FailNow()
	}
	page, err := workspaceBrowser.NewPage()
	if err != nil {
		t.Errorf("Create the new page fail: %v", err)
		t.FailNow()
	}
Save  
雨爱无痕 已提交
250
	if _, err = page.Goto("http://127.0.0.1:8081/", playwright.PageGotoOptions{
251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313
		WaitUntil: playwright.WaitUntilStateDomcontentloaded}); err != nil {
		t.Errorf("The specific URL is missing: %v", err)
		t.FailNow()
	}
	var waitTimeOut float64 = 5000
	_, err = page.WaitForSelector(".tree-node", playwright.PageWaitForSelectorOptions{Timeout: &waitTimeOut})
	if err != nil {
		CreateWorkspace(t)
		SyncFromZentao(t)
		return
	}
	locator, err := page.Locator(".tree-node", playwright.PageLocatorOptions{HasText: "单元测试工作目录"})
	c, err := locator.Count()
	if err != nil || c == 0 {
		t.Errorf("Find workspace fail: %v", err)
		t.FailNow()
	}
	locator.Click(playwright.PageClickOptions{Button: playwright.MouseButtonRight})
	if err != nil {
		t.Errorf("Right click node fail: %v", err)
		t.FailNow()
	}
	page.Click(".tree-context-menu>>text=从禅道同步")
	if err != nil {
		t.Errorf("Click sync from zentao fail: %v", err)
		t.FailNow()
	}
	_, err = page.WaitForSelector("#syncFromZentaoFormModal .z-tbody-checkbox")
	if err != nil {
		t.Errorf("Wait syncFromZentaoFormModal fail: %v", err)
		t.FailNow()
	}
	err = page.Click("text=编号标题类型状态结果 >> input[type=\"checkbox\"]")
	page.Click("text=1check string matches pattern功能测试正常通过 >> input[type=\"checkbox\"]")
	page.Click("text=2extract content from webpage功能测试正常 >> input[type=\"checkbox\"]")
	err = page.Click("#syncFromZentaoFormModal>>.modal-action>>span:has-text(\"确定\")")
	if err != nil {
		t.Errorf("The Click submit form fail: %v", err)
		t.FailNow()
	}
	_, err = page.WaitForSelector("#syncFromZentaoFormModal", playwright.PageWaitForSelectorOptions{State: playwright.WaitForSelectorStateHidden})
	if err != nil {
		t.Errorf("Wait syncFromZentaoFormModal hide fail: %v", err)
		t.FailNow()
	}
	locator, err = page.Locator(".toast-notification-container", playwright.PageLocatorOptions{HasText: "成功从禅道同步2个用例"})

	c, err = locator.Count()
	if err != nil || c == 0 {
		t.Errorf("Sync from zentao fail: %v", err)
		t.FailNow()
	}

	if err = workspaceBrowser.Close(); err != nil {
		t.Errorf("The workspaceBrowser cannot be closed: %v", err)
		t.FailNow()
	}
	if err = pw.Stop(); err != nil {
		t.Errorf("The playwright cannot be stopped: %v", err)
		t.FailNow()
	}
}

雨爱无痕 已提交
314
func SyncToZentao(t provider.T) {
雨爱无痕 已提交
315 316
	t.ID("5468")
	t.AddParentSuite("管理禅道站点下工作目录")
雨爱无痕 已提交
317 318 319
	pw, err := playwright.Run()
	if err != nil {
		t.Error(err)
雨爱无痕 已提交
320
		t.FailNow()
雨爱无痕 已提交
321 322 323
	}
	headless := true
	var slowMo float64 = 100
雨爱无痕 已提交
324
	workspaceBrowser, err := pw.Chromium.Launch(playwright.BrowserTypeLaunchOptions{Headless: &headless, SlowMo: &slowMo})
雨爱无痕 已提交
325
	if err != nil {
雨爱无痕 已提交
326 327
		t.Errorf("Fail to launch the web workspaceBrowser: %v", err)
		t.FailNow()
雨爱无痕 已提交
328
	}
雨爱无痕 已提交
329
	page, err := workspaceBrowser.NewPage()
雨爱无痕 已提交
330 331
	if err != nil {
		t.Errorf("Create the new page fail: %v", err)
雨爱无痕 已提交
332
		t.FailNow()
雨爱无痕 已提交
333
	}
Save  
雨爱无痕 已提交
334
	if _, err = page.Goto("http://127.0.0.1:8081/", playwright.PageGotoOptions{
雨爱无痕 已提交
335
		WaitUntil: playwright.WaitUntilStateDomcontentloaded}); err != nil {
雨爱无痕 已提交
336
		t.Errorf("The specific URL is missing: %v", err)
雨爱无痕 已提交
337
		t.FailNow()
雨爱无痕 已提交
338 339 340 341
	}
	_, err = page.WaitForSelector(".tree-node")
	if err != nil {
		t.Errorf("Wait tree-node fail: %v", err)
雨爱无痕 已提交
342
		t.FailNow()
雨爱无痕 已提交
343
	}
雨爱无痕 已提交
344 345
	locator, err := page.Locator(".tree-node", playwright.PageLocatorOptions{HasText: "单元测试工作目录"})
	c, err := locator.Count()
雨爱无痕 已提交
346 347
	if err != nil || c == 0 {
		t.Errorf("Find workspace fail: %v", err)
雨爱无痕 已提交
348
		t.FailNow()
雨爱无痕 已提交
349
	}
雨爱无痕 已提交
350
	err = locator.Click(playwright.PageClickOptions{Button: playwright.MouseButtonRight})
雨爱无痕 已提交
351 352
	if err != nil {
		t.Errorf("Right click node fail: %v", err)
雨爱无痕 已提交
353
		t.FailNow()
雨爱无痕 已提交
354 355 356 357
	}
	page.Click(".tree-context-menu>>text=同步到禅道")
	if err != nil {
		t.Errorf("Click sync to zentao fail: %v", err)
雨爱无痕 已提交
358
		t.FailNow()
雨爱无痕 已提交
359 360 361 362
	}
	_, err = page.WaitForSelector(".toast-notification-close")
	if err != nil {
		t.Errorf("Wait toast-notification-close fail: %v", err)
雨爱无痕 已提交
363
		t.FailNow()
雨爱无痕 已提交
364
	}
雨爱无痕 已提交
365 366
	locator, err = page.Locator(".toast-notification-container", playwright.PageLocatorOptions{HasText: "成功同步"})
	c, err = locator.Count()
雨爱无痕 已提交
367 368
	if err != nil || c == 0 {
		t.Errorf("Sync to zentao fail: %v", err)
雨爱无痕 已提交
369
		t.FailNow()
雨爱无痕 已提交
370
	}
雨爱无痕 已提交
371 372 373 374

	if err = workspaceBrowser.Close(); err != nil {
		t.Errorf("The workspaceBrowser cannot be closed: %v", err)
		t.FailNow()
雨爱无痕 已提交
375 376 377
	}
	if err = pw.Stop(); err != nil {
		t.Errorf("The playwright cannot be stopped: %v", err)
雨爱无痕 已提交
378
		t.FailNow()
雨爱无痕 已提交
379 380
	}
}
雨爱无痕 已提交
381
func Copy(t provider.T) {
雨爱无痕 已提交
382 383
	t.ID("5474")
	t.AddParentSuite("管理禅道站点下工作目录")
雨爱无痕 已提交
384 385 386
	pw, err := playwright.Run()
	if err != nil {
		t.Error(err)
雨爱无痕 已提交
387
		t.FailNow()
雨爱无痕 已提交
388 389 390
	}
	headless := true
	var slowMo float64 = 100
雨爱无痕 已提交
391
	workspaceBrowser, err := pw.Chromium.Launch(playwright.BrowserTypeLaunchOptions{Headless: &headless, SlowMo: &slowMo})
雨爱无痕 已提交
392
	if err != nil {
雨爱无痕 已提交
393 394
		t.Errorf("Fail to launch the web workspaceBrowser: %v", err)
		t.FailNow()
雨爱无痕 已提交
395
	}
雨爱无痕 已提交
396
	page, err := workspaceBrowser.NewPage()
雨爱无痕 已提交
397 398
	if err != nil {
		t.Errorf("Create the new page fail: %v", err)
雨爱无痕 已提交
399
		t.FailNow()
雨爱无痕 已提交
400
	}
Save  
雨爱无痕 已提交
401
	if _, err = page.Goto("http://127.0.0.1:8081/", playwright.PageGotoOptions{
雨爱无痕 已提交
402
		WaitUntil: playwright.WaitUntilStateDomcontentloaded}); err != nil {
雨爱无痕 已提交
403
		t.Errorf("The specific URL is missing: %v", err)
雨爱无痕 已提交
404
		t.FailNow()
雨爱无痕 已提交
405 406 407 408
	}
	_, err = page.WaitForSelector(".tree-node")
	if err != nil {
		t.Errorf("Wait tree-node fail: %v", err)
雨爱无痕 已提交
409
		t.FailNow()
雨爱无痕 已提交
410
	}
雨爱无痕 已提交
411 412
	locator, err := page.Locator(".tree-node", playwright.PageLocatorOptions{HasText: "单元测试工作目录"})
	c, err := locator.Count()
雨爱无痕 已提交
413 414
	if err != nil || c == 0 {
		t.Errorf("Find workspace fail: %v", err)
雨爱无痕 已提交
415
		t.FailNow()
雨爱无痕 已提交
416
	}
雨爱无痕 已提交
417
	err = locator.Click()
雨爱无痕 已提交
418 419
	if err != nil {
		t.Errorf("Click node fail: %v", err)
雨爱无痕 已提交
420
		t.FailNow()
雨爱无痕 已提交
421
	}
雨爱无痕 已提交
422
	productLocator, err := locator.Locator(".tree-node-item:has-text('product1')")
雨爱无痕 已提交
423 424
	if err != nil {
		t.Errorf("Find product1 fail: %v", err)
雨爱无痕 已提交
425
		t.FailNow()
雨爱无痕 已提交
426 427 428 429
	}
	err = productLocator.Click()
	if err != nil {
		t.Errorf("Click product1 fail: %v", err)
雨爱无痕 已提交
430
		t.FailNow()
雨爱无痕 已提交
431
	}
雨爱无痕 已提交
432
	scriptLocator, err := locator.Locator("text=1_string_match.php")
雨爱无痕 已提交
433
	if err != nil {
雨爱无痕 已提交
434 435
		t.Errorf("Find 1_string_match.php fail: %v", err)
		t.FailNow()
雨爱无痕 已提交
436 437 438 439
	}
	err = scriptLocator.Click(playwright.PageClickOptions{Button: playwright.MouseButtonRight})
	if err != nil {
		t.Errorf("Right click script fail: %v", err)
雨爱无痕 已提交
440
		t.FailNow()
雨爱无痕 已提交
441 442 443 444
	}
	err = page.Click(".tree-context-menu>>text=复制")
	if err != nil {
		t.Errorf("Click copy fail: %v", err)
雨爱无痕 已提交
445
		t.FailNow()
雨爱无痕 已提交
446 447 448 449
	}
	err = productLocator.Click(playwright.PageClickOptions{Button: playwright.MouseButtonRight})
	if err != nil {
		t.Errorf("Right click workspace fail: %v", err)
雨爱无痕 已提交
450
		t.FailNow()
雨爱无痕 已提交
451 452 453 454
	}
	err = page.Click(".tree-context-menu>>text=粘贴")
	if err != nil {
		t.Errorf("Click parse fail: %v", err)
雨爱无痕 已提交
455
		t.FailNow()
雨爱无痕 已提交
456 457
	}
	page.WaitForTimeout(1000)
雨爱无痕 已提交
458
	scriptLocator, err = locator.Locator(".tree-node-item>>div:has-text('1_string_match.php')")
雨爱无痕 已提交
459 460 461
	c, err = scriptLocator.Count()
	if err != nil || c < 2 {
		t.Errorf("Find workspace fail: %v", err)
雨爱无痕 已提交
462
		t.FailNow()
雨爱无痕 已提交
463
	}
雨爱无痕 已提交
464 465 466 467

	if err = workspaceBrowser.Close(); err != nil {
		t.Errorf("The workspaceBrowser cannot be closed: %v", err)
		t.FailNow()
雨爱无痕 已提交
468 469 470
	}
	if err = pw.Stop(); err != nil {
		t.Errorf("The playwright cannot be stopped: %v", err)
雨爱无痕 已提交
471
		t.FailNow()
雨爱无痕 已提交
472 473
	}
}
雨爱无痕 已提交
474
func DeleteScript(t provider.T) {
雨爱无痕 已提交
475 476
	t.ID("5478")
	t.AddParentSuite("管理禅道站点下工作目录")
雨爱无痕 已提交
477 478 479
	pw, err := playwright.Run()
	if err != nil {
		t.Error(err)
雨爱无痕 已提交
480
		t.FailNow()
雨爱无痕 已提交
481 482 483
	}
	headless := true
	var slowMo float64 = 100
雨爱无痕 已提交
484
	workspaceBrowser, err := pw.Chromium.Launch(playwright.BrowserTypeLaunchOptions{Headless: &headless, SlowMo: &slowMo})
雨爱无痕 已提交
485
	if err != nil {
雨爱无痕 已提交
486 487
		t.Errorf("Fail to launch the web workspaceBrowser: %v", err)
		t.FailNow()
雨爱无痕 已提交
488
	}
雨爱无痕 已提交
489
	page, err := workspaceBrowser.NewPage()
雨爱无痕 已提交
490 491
	if err != nil {
		t.Errorf("Create the new page fail: %v", err)
雨爱无痕 已提交
492
		t.FailNow()
雨爱无痕 已提交
493
	}
Save  
雨爱无痕 已提交
494
	if _, err = page.Goto("http://127.0.0.1:8081/", playwright.PageGotoOptions{
雨爱无痕 已提交
495
		WaitUntil: playwright.WaitUntilStateDomcontentloaded}); err != nil {
雨爱无痕 已提交
496
		t.Errorf("The specific URL is missing: %v", err)
雨爱无痕 已提交
497
		t.FailNow()
雨爱无痕 已提交
498 499 500 501
	}
	_, err = page.WaitForSelector(".tree-node")
	if err != nil {
		t.Errorf("Wait tree-node fail: %v", err)
雨爱无痕 已提交
502
		t.FailNow()
雨爱无痕 已提交
503
	}
雨爱无痕 已提交
504 505
	locator, err := page.Locator(".tree-node", playwright.PageLocatorOptions{HasText: "单元测试工作目录"})
	c, err := locator.Count()
雨爱无痕 已提交
506 507
	if err != nil || c == 0 {
		t.Errorf("Find workspace fail: %v", err)
雨爱无痕 已提交
508
		t.FailNow()
雨爱无痕 已提交
509
	}
雨爱无痕 已提交
510
	err = locator.Click()
雨爱无痕 已提交
511 512
	if err != nil {
		t.Errorf("Click node fail: %v", err)
雨爱无痕 已提交
513
		t.FailNow()
雨爱无痕 已提交
514
	}
雨爱无痕 已提交
515
	scriptLocator, err := locator.Locator("text=1.php")
雨爱无痕 已提交
516
	if err != nil {
雨爱无痕 已提交
517 518
		t.Errorf("Find 1.php fail: %v", err)
		t.FailNow()
雨爱无痕 已提交
519 520 521 522
	}
	err = scriptLocator.Click(playwright.PageClickOptions{Button: playwright.MouseButtonRight})
	if err != nil {
		t.Errorf("Right click script fail: %v", err)
雨爱无痕 已提交
523
		t.FailNow()
雨爱无痕 已提交
524 525 526 527
	}
	err = page.Click(".tree-context-menu>>text=删除")
	if err != nil {
		t.Errorf("Click delete fail: %v", err)
雨爱无痕 已提交
528
		t.FailNow()
雨爱无痕 已提交
529 530 531 532
	}
	err = page.Click(".modal-action>>span:has-text(\"确定\")")
	if err != nil {
		t.Errorf("The Click submit form fail: %v", err)
雨爱无痕 已提交
533
		t.FailNow()
雨爱无痕 已提交
534 535
	}
	page.WaitForTimeout(1000)
雨爱无痕 已提交
536
	scriptLocator, err = locator.Locator(".tree-node-item>>div:has-text('1.php')")
雨爱无痕 已提交
537 538 539
	c, err = scriptLocator.Count()
	if err != nil || c > 0 {
		t.Errorf("Delete workspace fail: %v", err)
雨爱无痕 已提交
540
		t.FailNow()
雨爱无痕 已提交
541
	}
雨爱无痕 已提交
542 543 544 545

	if err = workspaceBrowser.Close(); err != nil {
		t.Errorf("The workspaceBrowser cannot be closed: %v", err)
		t.FailNow()
雨爱无痕 已提交
546 547 548
	}
	if err = pw.Stop(); err != nil {
		t.Errorf("The playwright cannot be stopped: %v", err)
雨爱无痕 已提交
549
		t.FailNow()
雨爱无痕 已提交
550 551
	}
}
雨爱无痕 已提交
552
func DeleteDir(t provider.T) {
雨爱无痕 已提交
553 554
	t.ID("5477")
	t.AddParentSuite("管理禅道站点下工作目录")
雨爱无痕 已提交
555 556 557
	pw, err := playwright.Run()
	if err != nil {
		t.Error(err)
雨爱无痕 已提交
558
		t.FailNow()
雨爱无痕 已提交
559 560 561
	}
	headless := true
	var slowMo float64 = 100
雨爱无痕 已提交
562
	workspaceBrowser, err := pw.Chromium.Launch(playwright.BrowserTypeLaunchOptions{Headless: &headless, SlowMo: &slowMo})
雨爱无痕 已提交
563
	if err != nil {
雨爱无痕 已提交
564 565
		t.Errorf("Fail to launch the web workspaceBrowser: %v", err)
		t.FailNow()
雨爱无痕 已提交
566
	}
雨爱无痕 已提交
567
	page, err := workspaceBrowser.NewPage()
雨爱无痕 已提交
568 569
	if err != nil {
		t.Errorf("Create the new page fail: %v", err)
雨爱无痕 已提交
570
		t.FailNow()
雨爱无痕 已提交
571
	}
Save  
雨爱无痕 已提交
572
	if _, err = page.Goto("http://127.0.0.1:8081/", playwright.PageGotoOptions{
雨爱无痕 已提交
573
		WaitUntil: playwright.WaitUntilStateDomcontentloaded}); err != nil {
雨爱无痕 已提交
574
		t.Errorf("The specific URL is missing: %v", err)
雨爱无痕 已提交
575
		t.FailNow()
雨爱无痕 已提交
576 577 578 579
	}
	_, err = page.WaitForSelector(".tree-node")
	if err != nil {
		t.Errorf("Wait tree-node fail: %v", err)
雨爱无痕 已提交
580
		t.FailNow()
雨爱无痕 已提交
581
	}
雨爱无痕 已提交
582 583
	locator, err := page.Locator(".tree-node", playwright.PageLocatorOptions{HasText: "单元测试工作目录"})
	c, err := locator.Count()
雨爱无痕 已提交
584 585
	if err != nil || c == 0 {
		t.Errorf("Find workspace fail: %v", err)
雨爱无痕 已提交
586
		t.FailNow()
雨爱无痕 已提交
587
	}
雨爱无痕 已提交
588
	err = locator.Click()
雨爱无痕 已提交
589 590
	if err != nil {
		t.Errorf("Click node fail: %v", err)
雨爱无痕 已提交
591
		t.FailNow()
雨爱无痕 已提交
592
	}
雨爱无痕 已提交
593
	productLocator, err := locator.Locator(".tree-node-item:has-text('product1')")
雨爱无痕 已提交
594 595
	if err != nil {
		t.Errorf("Find product1 fail: %v", err)
雨爱无痕 已提交
596
		t.FailNow()
雨爱无痕 已提交
597 598 599 600
	}
	err = productLocator.Click(playwright.PageClickOptions{Button: playwright.MouseButtonRight})
	if err != nil {
		t.Errorf("Right click script fail: %v", err)
雨爱无痕 已提交
601
		t.FailNow()
雨爱无痕 已提交
602 603 604 605
	}
	err = page.Click(".tree-context-menu>>text=删除")
	if err != nil {
		t.Errorf("Click delete fail: %v", err)
雨爱无痕 已提交
606
		t.FailNow()
雨爱无痕 已提交
607 608 609 610
	}
	err = page.Click(".modal-action>>span:has-text(\"确定\")")
	if err != nil {
		t.Errorf("The Click submit form fail: %v", err)
雨爱无痕 已提交
611
		t.FailNow()
雨爱无痕 已提交
612 613
	}
	page.WaitForTimeout(1000)
雨爱无痕 已提交
614
	scriptLocator, err := locator.Locator(".tree-node-item>>div:has-text('product1')")
雨爱无痕 已提交
615 616 617
	c, err = scriptLocator.Count()
	if err != nil || c > 0 {
		t.Errorf("Delete workspace fail: %v", err)
雨爱无痕 已提交
618
		t.FailNow()
雨爱无痕 已提交
619
	}
雨爱无痕 已提交
620 621 622 623

	if err = workspaceBrowser.Close(); err != nil {
		t.Errorf("The workspaceBrowser cannot be closed: %v", err)
		t.FailNow()
雨爱无痕 已提交
624 625 626
	}
	if err = pw.Stop(); err != nil {
		t.Errorf("The playwright cannot be stopped: %v", err)
雨爱无痕 已提交
627
		t.FailNow()
雨爱无痕 已提交
628 629 630
	}
}

雨爱无痕 已提交
631
func DeleteWorkspace(t provider.T) {
雨爱无痕 已提交
632 633
	t.ID("5468")
	t.AddParentSuite("管理禅道站点下工作目录")
雨爱无痕 已提交
634 635 636
	pw, err := playwright.Run()
	if err != nil {
		t.Error(err)
雨爱无痕 已提交
637
		t.FailNow()
雨爱无痕 已提交
638 639 640
	}
	headless := true
	var slowMo float64 = 100
雨爱无痕 已提交
641
	workspaceBrowser, err := pw.Chromium.Launch(playwright.BrowserTypeLaunchOptions{Headless: &headless, SlowMo: &slowMo})
雨爱无痕 已提交
642
	if err != nil {
雨爱无痕 已提交
643 644
		t.Errorf("Fail to launch the web workspaceBrowser: %v", err)
		t.FailNow()
雨爱无痕 已提交
645
	}
雨爱无痕 已提交
646
	page, err := workspaceBrowser.NewPage()
雨爱无痕 已提交
647 648
	if err != nil {
		t.Errorf("Create the new page fail: %v", err)
雨爱无痕 已提交
649
		t.FailNow()
雨爱无痕 已提交
650
	}
Save  
雨爱无痕 已提交
651
	if _, err = page.Goto("http://127.0.0.1:8081/", playwright.PageGotoOptions{
雨爱无痕 已提交
652
		WaitUntil: playwright.WaitUntilStateDomcontentloaded}); err != nil {
雨爱无痕 已提交
653
		t.Errorf("The specific URL is missing: %v", err)
雨爱无痕 已提交
654
		t.FailNow()
雨爱无痕 已提交
655 656 657 658
	}
	_, err = page.WaitForSelector(".tree-node")
	if err != nil {
		t.Errorf("Wait tree-node fail: %v", err)
雨爱无痕 已提交
659
		t.FailNow()
雨爱无痕 已提交
660
	}
雨爱无痕 已提交
661 662
	locator, err := page.Locator(".tree-node-item", playwright.PageLocatorOptions{HasText: "单元测试工作目录"})
	c, err := locator.Count()
雨爱无痕 已提交
663 664
	if err != nil || c == 0 {
		t.Errorf("Find workspace fail: %v", err)
雨爱无痕 已提交
665
		t.FailNow()
雨爱无痕 已提交
666
	}
雨爱无痕 已提交
667
	err = locator.Hover()
雨爱无痕 已提交
668 669
	if err != nil {
		t.Errorf("The hover workspace fail: %v", err)
雨爱无痕 已提交
670
		t.FailNow()
雨爱无痕 已提交
671 672 673 674
	}
	err = page.Click(`[title="删除"]`)
	if err != nil {
		t.Errorf("The click delete fail: %v", err)
雨爱无痕 已提交
675
		t.FailNow()
雨爱无痕 已提交
676 677 678 679
	}
	err = page.Click(".modal-action>>span:has-text(\"确定\")")
	if err != nil {
		t.Errorf("The Click submit form fail: %v", err)
雨爱无痕 已提交
680
		t.FailNow()
雨爱无痕 已提交
681 682 683 684 685 686
	}
	page.WaitForTimeout(1000)
	scriptLocator, err := page.Locator(".tree-node-title:has-text('单元测试工作目录')")
	c, err = scriptLocator.Count()
	if err != nil || c > 0 {
		t.Errorf("Delete workspace fail: %v", err)
雨爱无痕 已提交
687
		t.FailNow()
雨爱无痕 已提交
688
	}
雨爱无痕 已提交
689 690 691 692

	if err = workspaceBrowser.Close(); err != nil {
		t.Errorf("The workspaceBrowser cannot be closed: %v", err)
		t.FailNow()
雨爱无痕 已提交
693 694 695
	}
	if err = pw.Stop(); err != nil {
		t.Errorf("The playwright cannot be stopped: %v", err)
雨爱无痕 已提交
696
		t.FailNow()
雨爱无痕 已提交
697 698
	}
}
雨爱无痕 已提交
699
func Clip(t provider.T) {
雨爱无痕 已提交
700 701
	t.ID("5476")
	t.AddParentSuite("管理禅道站点下工作目录")
雨爱无痕 已提交
702 703 704
	pw, err := playwright.Run()
	if err != nil {
		t.Error(err)
雨爱无痕 已提交
705
		t.FailNow()
雨爱无痕 已提交
706 707 708
	}
	headless := true
	var slowMo float64 = 100
雨爱无痕 已提交
709
	workspaceBrowser, err := pw.Chromium.Launch(playwright.BrowserTypeLaunchOptions{Headless: &headless, SlowMo: &slowMo})
雨爱无痕 已提交
710
	if err != nil {
雨爱无痕 已提交
711 712
		t.Errorf("Fail to launch the web workspaceBrowser: %v", err)
		t.FailNow()
雨爱无痕 已提交
713
	}
雨爱无痕 已提交
714
	page, err := workspaceBrowser.NewPage()
雨爱无痕 已提交
715 716
	if err != nil {
		t.Errorf("Create the new page fail: %v", err)
雨爱无痕 已提交
717
		t.FailNow()
雨爱无痕 已提交
718
	}
Save  
雨爱无痕 已提交
719
	if _, err = page.Goto("http://127.0.0.1:8081/", playwright.PageGotoOptions{
雨爱无痕 已提交
720
		WaitUntil: playwright.WaitUntilStateDomcontentloaded}); err != nil {
雨爱无痕 已提交
721
		t.Errorf("The specific URL is missing: %v", err)
雨爱无痕 已提交
722
		t.FailNow()
雨爱无痕 已提交
723 724 725 726
	}
	_, err = page.WaitForSelector(".tree-node")
	if err != nil {
		t.Errorf("Wait tree-node fail: %v", err)
雨爱无痕 已提交
727
		t.FailNow()
雨爱无痕 已提交
728
	}
雨爱无痕 已提交
729 730
	locator, err := page.Locator(".tree-node", playwright.PageLocatorOptions{HasText: "单元测试工作目录"})
	c, err := locator.Count()
雨爱无痕 已提交
731 732
	if err != nil || c == 0 {
		t.Errorf("Find workspace fail: %v", err)
雨爱无痕 已提交
733
		t.FailNow()
雨爱无痕 已提交
734
	}
雨爱无痕 已提交
735
	err = locator.Click()
雨爱无痕 已提交
736 737
	if err != nil {
		t.Errorf("Click node fail: %v", err)
雨爱无痕 已提交
738
		t.FailNow()
雨爱无痕 已提交
739
	}
雨爱无痕 已提交
740
	productLocator, err := locator.Locator(".tree-node-item:has-text('product1')")
雨爱无痕 已提交
741 742
	if err != nil {
		t.Errorf("Find product1 fail: %v", err)
雨爱无痕 已提交
743
		t.FailNow()
雨爱无痕 已提交
744 745 746 747
	}
	err = productLocator.Click()
	if err != nil {
		t.Errorf("Click product1 fail: %v", err)
雨爱无痕 已提交
748
		t.FailNow()
雨爱无痕 已提交
749
	}
雨爱无痕 已提交
750
	scriptLocator, err := locator.Locator("text=1.php")
雨爱无痕 已提交
751
	if err != nil {
雨爱无痕 已提交
752 753
		t.Errorf("Find 1.php fail: %v", err)
		t.FailNow()
雨爱无痕 已提交
754 755 756 757
	}
	err = scriptLocator.Click(playwright.PageClickOptions{Button: playwright.MouseButtonRight})
	if err != nil {
		t.Errorf("Right click script fail: %v", err)
雨爱无痕 已提交
758
		t.FailNow()
雨爱无痕 已提交
759 760 761 762
	}
	err = page.Click(".tree-context-menu>>text=剪切")
	if err != nil {
		t.Errorf("Click copy fail: %v", err)
雨爱无痕 已提交
763
		t.FailNow()
雨爱无痕 已提交
764 765 766 767
	}
	workspaceLocator, err := page.Locator(".tree-node-title", playwright.PageLocatorOptions{HasText: "单元测试工作目录"})
	if err != nil {
		t.Errorf("Find workspace fail: %v", err)
雨爱无痕 已提交
768
		t.FailNow()
雨爱无痕 已提交
769 770 771 772
	}
	err = workspaceLocator.Click(playwright.PageClickOptions{Button: playwright.MouseButtonRight})
	if err != nil {
		t.Errorf("Right click workspace fail: %v", err)
雨爱无痕 已提交
773
		t.FailNow()
雨爱无痕 已提交
774 775 776 777
	}
	err = page.Click(".tree-context-menu>>text=粘贴")
	if err != nil {
		t.Errorf("Click parse fail: %v", err)
雨爱无痕 已提交
778
		t.FailNow()
雨爱无痕 已提交
779 780
	}
	page.WaitForTimeout(1000)
雨爱无痕 已提交
781
	scriptLocator, err = locator.Locator(".tree-node-item>>div:has-text('1.php')")
雨爱无痕 已提交
782 783 784
	c, err = scriptLocator.Count()
	if err != nil || c < 1 {
		t.Errorf("Find workspace fail: %v", err)
雨爱无痕 已提交
785
		t.FailNow()
雨爱无痕 已提交
786
	}
雨爱无痕 已提交
787 788 789 790

	if err = workspaceBrowser.Close(); err != nil {
		t.Errorf("The workspaceBrowser cannot be closed: %v", err)
		t.FailNow()
雨爱无痕 已提交
791 792 793
	}
	if err = pw.Stop(); err != nil {
		t.Errorf("The playwright cannot be stopped: %v", err)
雨爱无痕 已提交
794
		t.FailNow()
雨爱无痕 已提交
795 796 797
	}
}

雨爱无痕 已提交
798
func FilterDir(t provider.T) {
雨爱无痕 已提交
799 800
	t.ID("5494")
	t.AddParentSuite("管理禅道站点下工作目录")
雨爱无痕 已提交
801 802 803
	pw, err := playwright.Run()
	if err != nil {
		t.Error(err)
雨爱无痕 已提交
804
		t.FailNow()
雨爱无痕 已提交
805
	}
雨爱无痕 已提交
806
	headless := true
雨爱无痕 已提交
807
	var slowMo float64 = 100
雨爱无痕 已提交
808
	workspaceBrowser, err := pw.Chromium.Launch(playwright.BrowserTypeLaunchOptions{Headless: &headless, SlowMo: &slowMo})
雨爱无痕 已提交
809
	if err != nil {
雨爱无痕 已提交
810 811
		t.Errorf("Fail to launch the web workspaceBrowser: %v", err)
		t.FailNow()
雨爱无痕 已提交
812
	}
雨爱无痕 已提交
813
	page, err := workspaceBrowser.NewPage()
雨爱无痕 已提交
814 815
	if err != nil {
		t.Errorf("Create the new page fail: %v", err)
雨爱无痕 已提交
816
		t.FailNow()
雨爱无痕 已提交
817
	}
Save  
雨爱无痕 已提交
818
	if _, err = page.Goto("http://127.0.0.1:8081/", playwright.PageGotoOptions{
雨爱无痕 已提交
819
		WaitUntil: playwright.WaitUntilStateDomcontentloaded}); err != nil {
雨爱无痕 已提交
820
		t.Errorf("The specific URL is missing: %v", err)
雨爱无痕 已提交
821
		t.FailNow()
雨爱无痕 已提交
822 823
	}

雨爱无痕 已提交
824
	locator, err := page.Locator("#siteMenuToggle")
雨爱无痕 已提交
825 826
	if err != nil {
		t.Errorf("The siteMenuToggle is missing: %v", err)
雨爱无痕 已提交
827
		t.FailNow()
雨爱无痕 已提交
828
	}
雨爱无痕 已提交
829
	err = locator.Click()
雨爱无痕 已提交
830 831
	if err != nil {
		t.Errorf("The Click is fail: %v", err)
雨爱无痕 已提交
832
		t.FailNow()
雨爱无痕 已提交
833 834 835 836
	}
	_, err = page.WaitForSelector("#navbar .list-item")
	if err != nil {
		t.Errorf("Wait for workspace list nav fail: %v", err)
雨爱无痕 已提交
837
		t.FailNow()
雨爱无痕 已提交
838
	}
雨爱无痕 已提交
839
	err = page.Click(".list-item-title>>text=单元测试站点")
雨爱无痕 已提交
840 841
	if err != nil {
		t.Errorf("The Click workspace nav fail: %v", err)
雨爱无痕 已提交
842
		t.FailNow()
雨爱无痕 已提交
843 844 845 846
	}
	err = page.Click(`[title="筛选"]`)
	if err != nil {
		t.Errorf("The Click create workspace fail: %v", err)
雨爱无痕 已提交
847
		t.FailNow()
雨爱无痕 已提交
848 849 850 851
	}
	_, err = page.WaitForSelector("#filterModal")
	if err != nil {
		t.Errorf("Wait filter modal fail: %v", err)
雨爱无痕 已提交
852
		t.FailNow()
雨爱无痕 已提交
853 854
	}

雨爱无痕 已提交
855
	err = page.Click("#filterModal>>div:has-text(\"单元测试工作目录\")")
雨爱无痕 已提交
856 857
	if err != nil {
		t.Errorf("The Click php filter fail: %v", err)
雨爱无痕 已提交
858
		t.FailNow()
雨爱无痕 已提交
859 860 861 862
	}
	eleArr, err := page.QuerySelectorAll("#leftPane .tree .tree-node")
	if len(eleArr) != 1 {
		t.Errorf("Filter valid fail: %v", err)
雨爱无痕 已提交
863
		t.FailNow()
雨爱无痕 已提交
864
	}
雨爱无痕 已提交
865 866 867
	if err = workspaceBrowser.Close(); err != nil {
		t.Errorf("The workspaceBrowser cannot be closed: %v", err)
		t.FailNow()
雨爱无痕 已提交
868 869 870
	}
	if err = pw.Stop(); err != nil {
		t.Errorf("The playwright cannot be stopped: %v", err)
雨爱无痕 已提交
871
		t.FailNow()
雨爱无痕 已提交
872 873
	}
}
雨爱无痕 已提交
874
func FilterSuite(t provider.T) {
雨爱无痕 已提交
875 876
	t.ID("5495")
	t.AddParentSuite("管理禅道站点下工作目录")
雨爱无痕 已提交
877 878 879
	pw, err := playwright.Run()
	if err != nil {
		t.Error(err)
雨爱无痕 已提交
880
		t.FailNow()
雨爱无痕 已提交
881
	}
雨爱无痕 已提交
882
	headless := true
雨爱无痕 已提交
883
	var slowMo float64 = 100
雨爱无痕 已提交
884
	workspaceBrowser, err := pw.Chromium.Launch(playwright.BrowserTypeLaunchOptions{Headless: &headless, SlowMo: &slowMo})
雨爱无痕 已提交
885
	if err != nil {
雨爱无痕 已提交
886 887
		t.Errorf("Fail to launch the web workspaceBrowser: %v", err)
		t.FailNow()
雨爱无痕 已提交
888
	}
雨爱无痕 已提交
889
	page, err := workspaceBrowser.NewPage()
雨爱无痕 已提交
890 891
	if err != nil {
		t.Errorf("Create the new page fail: %v", err)
雨爱无痕 已提交
892
		t.FailNow()
雨爱无痕 已提交
893
	}
Save  
雨爱无痕 已提交
894
	if _, err = page.Goto("http://127.0.0.1:8081/", playwright.PageGotoOptions{
雨爱无痕 已提交
895
		WaitUntil: playwright.WaitUntilStateDomcontentloaded}); err != nil {
雨爱无痕 已提交
896
		t.Errorf("The specific URL is missing: %v", err)
雨爱无痕 已提交
897
		t.FailNow()
雨爱无痕 已提交
898 899
	}

雨爱无痕 已提交
900
	locator, err := page.Locator("#siteMenuToggle")
雨爱无痕 已提交
901 902
	if err != nil {
		t.Errorf("The siteMenuToggle is missing: %v", err)
雨爱无痕 已提交
903
		t.FailNow()
雨爱无痕 已提交
904
	}
雨爱无痕 已提交
905
	err = locator.Click()
雨爱无痕 已提交
906 907
	if err != nil {
		t.Errorf("The Click is fail: %v", err)
雨爱无痕 已提交
908
		t.FailNow()
雨爱无痕 已提交
909 910 911 912
	}
	_, err = page.WaitForSelector("#navbar .list-item")
	if err != nil {
		t.Errorf("Wait for workspace list nav fail: %v", err)
雨爱无痕 已提交
913
		t.FailNow()
雨爱无痕 已提交
914
	}
雨爱无痕 已提交
915
	err = page.Click(".list-item-title>>text=单元测试站点")
雨爱无痕 已提交
916 917
	if err != nil {
		t.Errorf("The Click workspace nav fail: %v", err)
雨爱无痕 已提交
918
		t.FailNow()
雨爱无痕 已提交
919 920 921 922
	}
	err = page.Click(`[title="筛选"]`)
	if err != nil {
		t.Errorf("The Click create workspace fail: %v", err)
雨爱无痕 已提交
923
		t.FailNow()
雨爱无痕 已提交
924 925 926 927
	}
	_, err = page.WaitForSelector("#filterModal")
	if err != nil {
		t.Errorf("Wait filter modal fail: %v", err)
雨爱无痕 已提交
928
		t.FailNow()
雨爱无痕 已提交
929 930 931 932 933
	}
	page.WaitForTimeout(600)
	err = page.Click("#filterModal>>.tab-nav:has-text(\"按套件\")")
	if err != nil {
		t.Errorf("The Click by suite fail: %v", err)
雨爱无痕 已提交
934
		t.FailNow()
雨爱无痕 已提交
935 936 937 938 939
	}
	page.WaitForSelector("#filterModal>>.list-item-title:has-text(\"test_suite\")")
	err = page.Click("#filterModal>>.list-item-title:has-text(\"test_suite\")")
	if err != nil {
		t.Errorf("The Click test_suite filter fail: %v", err)
雨爱无痕 已提交
940
		t.FailNow()
雨爱无痕 已提交
941
	}
雨爱无痕 已提交
942
	page.WaitForTimeout(200)
雨爱无痕 已提交
943
	page.WaitForSelector(".toolbar:has-text(\"按套件\")")
雨爱无痕 已提交
944
	err = page.Click(".tree-node-title:has-text(\"单元测试工作目录\")")
雨爱无痕 已提交
945
	page.WaitForSelector(".tree")
雨爱无痕 已提交
946
	page.WaitForTimeout(200)
雨爱无痕 已提交
947 948 949 950
	scriptLocator, err := page.Locator(".tree>>text=1_string_match.php")
	c, err := scriptLocator.Count()
	if err != nil || c == 0 {
		t.Errorf("Filter suite fail: %v", err)
雨爱无痕 已提交
951
		t.FailNow()
雨爱无痕 已提交
952
	}
雨爱无痕 已提交
953 954 955 956

	if err = workspaceBrowser.Close(); err != nil {
		t.Errorf("The workspaceBrowser cannot be closed: %v", err)
		t.FailNow()
雨爱无痕 已提交
957 958 959
	}
	if err = pw.Stop(); err != nil {
		t.Errorf("The playwright cannot be stopped: %v", err)
雨爱无痕 已提交
960
		t.FailNow()
雨爱无痕 已提交
961 962
	}
}
雨爱无痕 已提交
963
func FilterTask(t provider.T) {
雨爱无痕 已提交
964 965
	t.ID("5496")
	t.AddParentSuite("管理禅道站点下工作目录")
雨爱无痕 已提交
966 967 968
	pw, err := playwright.Run()
	if err != nil {
		t.Error(err)
雨爱无痕 已提交
969
		t.FailNow()
雨爱无痕 已提交
970
	}
雨爱无痕 已提交
971
	headless := true
雨爱无痕 已提交
972
	var slowMo float64 = 100
雨爱无痕 已提交
973
	workspaceBrowser, err := pw.Chromium.Launch(playwright.BrowserTypeLaunchOptions{Headless: &headless, SlowMo: &slowMo})
雨爱无痕 已提交
974
	if err != nil {
雨爱无痕 已提交
975 976
		t.Errorf("Fail to launch the web workspaceBrowser: %v", err)
		t.FailNow()
雨爱无痕 已提交
977
	}
雨爱无痕 已提交
978
	page, err := workspaceBrowser.NewPage()
雨爱无痕 已提交
979 980
	if err != nil {
		t.Errorf("Create the new page fail: %v", err)
雨爱无痕 已提交
981
		t.FailNow()
雨爱无痕 已提交
982
	}
Save  
雨爱无痕 已提交
983
	if _, err = page.Goto("http://127.0.0.1:8081/", playwright.PageGotoOptions{
雨爱无痕 已提交
984
		WaitUntil: playwright.WaitUntilStateDomcontentloaded}); err != nil {
雨爱无痕 已提交
985
		t.Errorf("The specific URL is missing: %v", err)
雨爱无痕 已提交
986
		t.FailNow()
雨爱无痕 已提交
987 988
	}

雨爱无痕 已提交
989
	locator, err := page.Locator("#siteMenuToggle")
雨爱无痕 已提交
990 991
	if err != nil {
		t.Errorf("The siteMenuToggle is missing: %v", err)
雨爱无痕 已提交
992
		t.FailNow()
雨爱无痕 已提交
993
	}
雨爱无痕 已提交
994
	err = locator.Click()
雨爱无痕 已提交
995 996
	if err != nil {
		t.Errorf("The Click is fail: %v", err)
雨爱无痕 已提交
997
		t.FailNow()
雨爱无痕 已提交
998 999 1000 1001
	}
	_, err = page.WaitForSelector("#navbar .list-item")
	if err != nil {
		t.Errorf("Wait for workspace list nav fail: %v", err)
雨爱无痕 已提交
1002
		t.FailNow()
雨爱无痕 已提交
1003
	}
雨爱无痕 已提交
1004
	err = page.Click(".list-item-title>>text=单元测试站点")
雨爱无痕 已提交
1005 1006
	if err != nil {
		t.Errorf("The Click workspace nav fail: %v", err)
雨爱无痕 已提交
1007
		t.FailNow()
雨爱无痕 已提交
1008 1009 1010 1011
	}
	err = page.Click(`[title="筛选"]`)
	if err != nil {
		t.Errorf("The Click create workspace fail: %v", err)
雨爱无痕 已提交
1012
		t.FailNow()
雨爱无痕 已提交
1013 1014 1015 1016
	}
	_, err = page.WaitForSelector("#filterModal")
	if err != nil {
		t.Errorf("Wait filter modal fail: %v", err)
雨爱无痕 已提交
1017
		t.FailNow()
雨爱无痕 已提交
1018 1019
	}
	page.WaitForTimeout(600)
雨爱无痕 已提交
1020
	err = page.Click("#filterModal>>.tab-nav:has-text(\"按测试单\")")
雨爱无痕 已提交
1021 1022
	if err != nil {
		t.Errorf("The Click by suite fail: %v", err)
雨爱无痕 已提交
1023
		t.FailNow()
雨爱无痕 已提交
1024 1025 1026
	}
	page.WaitForSelector("#filterModal>>.list-item-title:has-text(\"test_task\")")
	err = page.Click("#filterModal>>.list-item-title:has-text(\"test_task\")")
雨爱无痕 已提交
1027
	page.WaitForTimeout(200)
雨爱无痕 已提交
1028
	if err != nil {
雨爱无痕 已提交
1029
		t.Errorf("The Click test_task filter fail: %v", err)
雨爱无痕 已提交
1030
		t.FailNow()
雨爱无痕 已提交
1031
	}
雨爱无痕 已提交
1032
	page.WaitForSelector(".toolbar:has-text(\"按测试单\")")
雨爱无痕 已提交
1033
	err = page.Click(".tree-node-title:has-text(\"单元测试工作目录\")")
雨爱无痕 已提交
1034 1035 1036 1037
	scriptLocator, err := page.Locator(".tree>>text=1_string_match.php")
	c, err := scriptLocator.Count()
	if err != nil || c == 0 {
		t.Errorf("Filter suite fail: %v", err)
雨爱无痕 已提交
1038
		t.FailNow()
雨爱无痕 已提交
1039
	}
雨爱无痕 已提交
1040 1041 1042 1043

	if err = workspaceBrowser.Close(); err != nil {
		t.Errorf("The workspaceBrowser cannot be closed: %v", err)
		t.FailNow()
雨爱无痕 已提交
1044 1045 1046
	}
	if err = pw.Stop(); err != nil {
		t.Errorf("The playwright cannot be stopped: %v", err)
雨爱无痕 已提交
1047
		t.FailNow()
雨爱无痕 已提交
1048 1049
	}
}
雨爱无痕 已提交
1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069
func Collapse(t provider.T) {
	t.ID("5472")
	t.AddParentSuite("管理禅道站点下工作目录")
	pw, err := playwright.Run()
	if err != nil {
		t.Error(err)
		t.FailNow()
	}
	headless := true
	var slowMo float64 = 100
	workspaceBrowser, err := pw.Chromium.Launch(playwright.BrowserTypeLaunchOptions{Headless: &headless, SlowMo: &slowMo})
	if err != nil {
		t.Errorf("Fail to launch the web workspaceBrowser: %v", err)
		t.FailNow()
	}
	page, err := workspaceBrowser.NewPage()
	if err != nil {
		t.Errorf("Create the new page fail: %v", err)
		t.FailNow()
	}
Save  
雨爱无痕 已提交
1070
	if _, err = page.Goto("http://127.0.0.1:8081/", playwright.PageGotoOptions{
雨爱无痕 已提交
1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128
		WaitUntil: playwright.WaitUntilStateDomcontentloaded}); err != nil {
		t.Errorf("The specific URL is missing: %v", err)
		t.FailNow()
	}

	locator, err := page.Locator("#siteMenuToggle")
	if err != nil {
		t.Errorf("The siteMenuToggle is missing: %v", err)
		t.FailNow()
	}
	err = locator.Click()
	if err != nil {
		t.Errorf("The Click is fail: %v", err)
		t.FailNow()
	}
	_, err = page.WaitForSelector("#navbar .list-item")
	if err != nil {
		t.Errorf("Wait for workspace list nav fail: %v", err)
		t.FailNow()
	}
	err = page.Click(".list-item-title>>text=单元测试站点")
	if err != nil {
		t.Errorf("The Click workspace nav fail: %v", err)
		t.FailNow()
	}
	err = page.Click(`#leftPane>>.toolbar>>[title="展开"]`)
	if err != nil {
		t.Errorf("Click expand workspace btn fail: %v", err)
		t.FailNow()
	}
	page.WaitForTimeout(100)
	locator, _ = page.Locator("#leftPane>>.tree-node-item>>text=1_string_match.php")
	count, _ := locator.Count()
	if count == 0 {
		t.Error("Expand workspace fail")
		t.FailNow()
	}
	err = page.Click(`#leftPane>>.toolbar>>[title="折叠"]`)
	if err != nil {
		t.Errorf("Click Collapse workspace btn fail: %v", err)
		t.FailNow()
	}
	page.WaitForTimeout(100)
	locator, _ = page.Locator("#leftPane>>.tree-node-item>>text=1_string_match.php")
	count, _ = locator.Count()
	if count > 0 {
		t.Error("Collapse workspace fail")
		t.FailNow()
	}
	if err = workspaceBrowser.Close(); err != nil {
		t.Errorf("The workspaceBrowser cannot be closed: %v", err)
		t.FailNow()
	}
	if err = pw.Stop(); err != nil {
		t.Errorf("The playwright cannot be stopped: %v", err)
		t.FailNow()
	}
}
雨爱无痕 已提交
1129
func TestUiWorkspace(t *testing.T) {
雨爱无痕 已提交
1130 1131 1132 1133 1134 1135 1136 1137 1138 1139
	runner.Run(t, "客户端-从禅道同步部分用例", SyncTwoCaseFromZentao)
	runner.Run(t, "客户端-从禅道同步", SyncFromZentao)
	runner.Run(t, "客户端-同步到禅道", SyncToZentao)
	runner.Run(t, "客户端-复制粘贴树状脚本文件", Copy)
	runner.Run(t, "客户端-剪切粘贴树状脚本文件", Clip)
	runner.Run(t, "客户端-删除树状脚本文件", DeleteScript)
	runner.Run(t, "客户端-删除树状脚本文件夹", DeleteDir)
	runner.Run(t, "客户端-按目录过滤禅道用例脚本", FilterDir)
	runner.Run(t, "客户端-按套件过滤禅道用例脚本", FilterSuite)
	runner.Run(t, "客户端-按测试单过滤禅道用例脚本", FilterTask)
雨爱无痕 已提交
1140
	runner.Run(t, "客户端-显示展开折叠脚本树状结构", Collapse)
雨爱无痕 已提交
1141 1142
	runner.Run(t, "客户端-删除禅道工作目录", DeleteWorkspace)
	runner.Run(t, "客户端-创建禅道工作目录", CreateWorkspace)
雨爱无痕 已提交
1143
}