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

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

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

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

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

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

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

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

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

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

雨爱无痕 已提交
229
func SyncTwoCaseFromZentao(t provider.T) {
雨爱无痕 已提交
230 231
	t.ID("5468")
	t.AddParentSuite("管理禅道站点下工作目录")
232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 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
	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()
	}
	if _, err = page.Goto("http://127.0.0.1:8000/", playwright.PageGotoOptions{
		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()
	}
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	if err = workspaceBrowser.Close(); err != nil {
		t.Errorf("The workspaceBrowser cannot be closed: %v", err)
		t.FailNow()
雨爱无痕 已提交
1043 1044 1045
	}
	if err = pw.Stop(); err != nil {
		t.Errorf("The playwright cannot be stopped: %v", err)
雨爱无痕 已提交
1046
		t.FailNow()
雨爱无痕 已提交
1047 1048
	}
}
雨爱无痕 已提交
1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 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
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()
	}
	if _, err = page.Goto("http://127.0.0.1:8000/", playwright.PageGotoOptions{
		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()
	}
}
雨爱无痕 已提交
1128
func TestWorkspace(t *testing.T) {
雨爱无痕 已提交
1129 1130 1131 1132 1133 1134 1135 1136 1137 1138
	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)
雨爱无痕 已提交
1139
	runner.Run(t, "客户端-显示展开折叠脚本树状结构", Collapse)
雨爱无痕 已提交
1140 1141
	runner.Run(t, "客户端-删除禅道工作目录", DeleteWorkspace)
	runner.Run(t, "客户端-创建禅道工作目录", CreateWorkspace)
雨爱无痕 已提交
1142
}