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

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

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

雨爱无痕 已提交
14
var pw, err = os.Getwd()
雨爱无痕 已提交
15
var (
雨爱无痕 已提交
16
	workspacePath = fmt.Sprintf("%stest%sdemo%sphp", commonTestHelper.RootPath, commonTestHelper.FilePthSep, commonTestHelper.FilePthSep)
雨爱无痕 已提交
17 18
)

雨爱无痕 已提交
19
func CreateWorkspace(t provider.T) {
雨爱无痕 已提交
20 21
	t.ID("5468")
	t.AddParentSuite("管理禅道站点下工作目录")
雨爱无痕 已提交
22 23 24
	pw, err := playwright.Run()
	if err != nil {
		t.Error(err)
雨爱无痕 已提交
25
		t.FailNow()
雨爱无痕 已提交
26
		return
雨爱无痕 已提交
27
	}
雨爱无痕 已提交
28
	headless := true
雨爱无痕 已提交
29
	var slowMo float64 = 100
雨爱无痕 已提交
30
	workspaceBrowser, err := pw.Chromium.Launch(playwright.BrowserTypeLaunchOptions{Headless: &headless, SlowMo: &slowMo})
雨爱无痕 已提交
31
	if err != nil {
雨爱无痕 已提交
32 33
		t.Errorf("Fail to launch the web workspaceBrowser: %v", err)
		t.FailNow()
雨爱无痕 已提交
34
		return
雨爱无痕 已提交
35
	}
雨爱无痕 已提交
36
	page, err := workspaceBrowser.NewPage()
雨爱无痕 已提交
37 38
	if err != nil {
		t.Errorf("Create the new page fail: %v", err)
雨爱无痕 已提交
39
		t.FailNow()
雨爱无痕 已提交
40
		return
雨爱无痕 已提交
41
	}
雨爱无痕 已提交
42 43 44 45 46 47 48 49 50 51 52 53
	defer func() {
		if err = workspaceBrowser.Close(); err != nil {
			t.Errorf("The workspaceBrowser cannot be closed: %v", err)
			t.FailNow()
			return
		}
		if err = pw.Stop(); err != nil {
			t.Errorf("The playwright cannot be stopped: %v", err)
			t.FailNow()
			return
		}
	}()
雨爱无痕 已提交
54
	if _, err = page.Goto("http://127.0.0.1:8000/", playwright.PageGotoOptions{
雨爱无痕 已提交
55
		WaitUntil: playwright.WaitUntilStateDomcontentloaded}); err != nil {
雨爱无痕 已提交
56
		t.Errorf("The specific URL is missing: %v", err)
雨爱无痕 已提交
57
		t.FailNow()
雨爱无痕 已提交
58
		return
雨爱无痕 已提交
59 60
	}

雨爱无痕 已提交
61
	locator, err := page.Locator("#siteMenuToggle")
雨爱无痕 已提交
62 63
	if err != nil {
		t.Errorf("The siteMenuToggle is missing: %v", err)
雨爱无痕 已提交
64
		t.FailNow()
雨爱无痕 已提交
65
		return
雨爱无痕 已提交
66
	}
雨爱无痕 已提交
67
	err = locator.Click()
雨爱无痕 已提交
68 69
	if err != nil {
		t.Errorf("The Click is fail: %v", err)
雨爱无痕 已提交
70
		t.FailNow()
雨爱无痕 已提交
71
		return
雨爱无痕 已提交
72 73 74 75
	}
	_, err = page.WaitForSelector("#navbar .list-item")
	if err != nil {
		t.Errorf("Wait for workspace list nav fail: %v", err)
雨爱无痕 已提交
76
		t.FailNow()
雨爱无痕 已提交
77
		return
雨爱无痕 已提交
78
	}
雨爱无痕 已提交
79
	err = page.Click(".list-item-title>>text=单元测试站点")
雨爱无痕 已提交
80 81
	if err != nil {
		t.Errorf("The Click workspace nav fail: %v", err)
雨爱无痕 已提交
82
		t.FailNow()
雨爱无痕 已提交
83
		return
雨爱无痕 已提交
84 85 86 87 88
	}

	err = page.Click(`[title="新建工作目录"]`)
	if err != nil {
		t.Errorf("The Click create workspace fail: %v", err)
雨爱无痕 已提交
89
		t.FailNow()
雨爱无痕 已提交
90
		return
雨爱无痕 已提交
91 92
	}
	_, err = page.WaitForSelector("#workspaceFormModal")
雨爱无痕 已提交
93
	locator, err = page.Locator("#workspaceFormModal input")
雨爱无痕 已提交
94 95
	if err != nil {
		t.Errorf("Find create workspace input fail: %v", err)
雨爱无痕 已提交
96
		t.FailNow()
雨爱无痕 已提交
97
		return
雨爱无痕 已提交
98
	}
雨爱无痕 已提交
99
	titleInput, err := locator.Nth(0)
雨爱无痕 已提交
100 101
	if err != nil {
		t.Errorf("Find title input fail: %v", err)
雨爱无痕 已提交
102
		t.FailNow()
雨爱无痕 已提交
103
		return
雨爱无痕 已提交
104 105 106 107
	}
	err = titleInput.Fill("单元测试工作目录")
	if err != nil {
		t.Errorf("Fil title input fail: %v", err)
雨爱无痕 已提交
108
		t.FailNow()
雨爱无痕 已提交
109
		return
雨爱无痕 已提交
110
	}
雨爱无痕 已提交
111
	pathInput, err := locator.Nth(1)
雨爱无痕 已提交
112 113
	if err != nil {
		t.Errorf("Find address input fail: %v", err)
雨爱无痕 已提交
114
		t.FailNow()
雨爱无痕 已提交
115
		return
雨爱无痕 已提交
116 117 118 119
	}
	err = pathInput.Fill(workspacePath)
	if err != nil {
		t.Errorf("Fil address input fail: %v", err)
雨爱无痕 已提交
120
		t.FailNow()
雨爱无痕 已提交
121
		return
雨爱无痕 已提交
122
	}
雨爱无痕 已提交
123
	locator, err = page.Locator("#workspaceFormModal select")
雨爱无痕 已提交
124 125
	if err != nil {
		t.Errorf("Find create workspace select fail: %v", err)
雨爱无痕 已提交
126
		t.FailNow()
雨爱无痕 已提交
127
		return
雨爱无痕 已提交
128
	}
雨爱无痕 已提交
129
	typeInput, err := locator.Nth(0)
雨爱无痕 已提交
130 131
	if err != nil {
		t.Errorf("Find name input fail: %v", err)
雨爱无痕 已提交
132
		t.FailNow()
雨爱无痕 已提交
133
		return
雨爱无痕 已提交
134 135 136 137
	}
	_, err = typeInput.SelectOption(playwright.SelectOptionValues{Values: &[]string{"ztf"}})
	if err != nil {
		t.Errorf("Fil name input fail: %v", err)
雨爱无痕 已提交
138
		t.FailNow()
雨爱无痕 已提交
139
		return
雨爱无痕 已提交
140
	}
雨爱无痕 已提交
141
	langInput, err := locator.Nth(1)
雨爱无痕 已提交
142 143
	if err != nil {
		t.Errorf("Find lang input fail: %v", err)
雨爱无痕 已提交
144
		t.FailNow()
雨爱无痕 已提交
145
		return
雨爱无痕 已提交
146
	}
雨爱无痕 已提交
147
	_, err = langInput.SelectOption(playwright.SelectOptionValues{Values: &[]string{"php"}})
雨爱无痕 已提交
148 149
	if err != nil {
		t.Errorf("Fil lang input fail: %v", err)
雨爱无痕 已提交
150
		t.FailNow()
雨爱无痕 已提交
151
		return
雨爱无痕 已提交
152 153 154 155
	}
	err = page.Click("#workspaceFormModal>>.modal-action>>span:has-text(\"确定\")")
	if err != nil {
		t.Errorf("The Click submit form fail: %v", err)
雨爱无痕 已提交
156
		t.FailNow()
雨爱无痕 已提交
157
		return
雨爱无痕 已提交
158 159 160 161 162 163
	}
	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()
雨爱无痕 已提交
164
		return
雨爱无痕 已提交
165
	}
雨爱无痕 已提交
166 167
	locator, err = page.Locator(".tree-node-title", playwright.PageLocatorOptions{HasText: "单元测试工作目录"})
	c, err := locator.Count()
雨爱无痕 已提交
168 169
	if err != nil || c == 0 {
		t.Errorf("Find created workspace fail: %v", err)
雨爱无痕 已提交
170
		t.FailNow()
雨爱无痕 已提交
171
		return
雨爱无痕 已提交
172 173 174
	}
}

雨爱无痕 已提交
175
func SyncFromZentao(t provider.T) {
雨爱无痕 已提交
176 177
	t.ID("5468")
	t.AddParentSuite("管理禅道站点下工作目录")
雨爱无痕 已提交
178 179 180
	pw, err := playwright.Run()
	if err != nil {
		t.Error(err)
雨爱无痕 已提交
181
		t.FailNow()
雨爱无痕 已提交
182
		return
雨爱无痕 已提交
183
	}
雨爱无痕 已提交
184
	headless := true
雨爱无痕 已提交
185
	var slowMo float64 = 100
雨爱无痕 已提交
186
	workspaceBrowser, err := pw.Chromium.Launch(playwright.BrowserTypeLaunchOptions{Headless: &headless, SlowMo: &slowMo})
雨爱无痕 已提交
187
	if err != nil {
雨爱无痕 已提交
188 189
		t.Errorf("Fail to launch the web workspaceBrowser: %v", err)
		t.FailNow()
雨爱无痕 已提交
190
		return
雨爱无痕 已提交
191
	}
雨爱无痕 已提交
192
	page, err := workspaceBrowser.NewPage()
雨爱无痕 已提交
193 194
	if err != nil {
		t.Errorf("Create the new page fail: %v", err)
雨爱无痕 已提交
195
		t.FailNow()
雨爱无痕 已提交
196
		return
雨爱无痕 已提交
197
	}
雨爱无痕 已提交
198 199 200 201 202 203 204 205 206 207 208 209
	defer func() {
		if err = workspaceBrowser.Close(); err != nil {
			t.Errorf("The workspaceBrowser cannot be closed: %v", err)
			t.FailNow()
			return
		}
		if err = pw.Stop(); err != nil {
			t.Errorf("The playwright cannot be stopped: %v", err)
			t.FailNow()
			return
		}
	}()
雨爱无痕 已提交
210
	if _, err = page.Goto("http://127.0.0.1:8000/", playwright.PageGotoOptions{
雨爱无痕 已提交
211
		WaitUntil: playwright.WaitUntilStateDomcontentloaded}); err != nil {
雨爱无痕 已提交
212
		t.Errorf("The specific URL is missing: %v", err)
雨爱无痕 已提交
213
		t.FailNow()
雨爱无痕 已提交
214
		return
雨爱无痕 已提交
215
	}
雨爱无痕 已提交
216 217
	var waitTimeOut float64 = 5000
	_, err = page.WaitForSelector(".tree-node", playwright.PageWaitForSelectorOptions{Timeout: &waitTimeOut})
雨爱无痕 已提交
218
	if err != nil {
雨爱无痕 已提交
219 220
		CreateWorkspace(t)
		SyncFromZentao(t)
雨爱无痕 已提交
221 222
		return
	}
雨爱无痕 已提交
223 224
	locator, err := page.Locator(".tree-node", playwright.PageLocatorOptions{HasText: "单元测试工作目录"})
	c, err := locator.Count()
雨爱无痕 已提交
225
	if err != nil || c == 0 {
雨爱无痕 已提交
226 227 228
		CreateWorkspace(t)
		SyncFromZentao(t)
		return
雨爱无痕 已提交
229
	}
雨爱无痕 已提交
230
	locator.Click(playwright.PageClickOptions{Button: playwright.MouseButtonRight})
雨爱无痕 已提交
231 232
	if err != nil {
		t.Errorf("Right click node fail: %v", err)
雨爱无痕 已提交
233
		t.FailNow()
雨爱无痕 已提交
234
		return
雨爱无痕 已提交
235 236 237 238
	}
	page.Click(".tree-context-menu>>text=从禅道同步")
	if err != nil {
		t.Errorf("Click sync from zentao fail: %v", err)
雨爱无痕 已提交
239
		t.FailNow()
雨爱无痕 已提交
240
		return
雨爱无痕 已提交
241 242 243 244
	}
	_, err = page.WaitForSelector("#syncFromZentaoFormModal .z-tbody-checkbox")
	if err != nil {
		t.Errorf("Wait syncFromZentaoFormModal fail: %v", err)
雨爱无痕 已提交
245
		t.FailNow()
雨爱无痕 已提交
246
		return
雨爱无痕 已提交
247 248 249 250
	}
	err = page.Click("#syncFromZentaoFormModal>>.modal-action>>span:has-text(\"确定\")")
	if err != nil {
		t.Errorf("The Click submit form fail: %v", err)
雨爱无痕 已提交
251
		t.FailNow()
雨爱无痕 已提交
252
		return
雨爱无痕 已提交
253 254 255 256
	}
	_, err = page.WaitForSelector("#syncFromZentaoFormModal", playwright.PageWaitForSelectorOptions{State: playwright.WaitForSelectorStateHidden})
	if err != nil {
		t.Errorf("Wait syncFromZentaoFormModal hide fail: %v", err)
雨爱无痕 已提交
257
		t.FailNow()
雨爱无痕 已提交
258
		return
雨爱无痕 已提交
259
	}
雨爱无痕 已提交
260 261
	locator, err = page.Locator(".toast-notification-container", playwright.PageLocatorOptions{HasText: "成功从禅道同步"})
	c, err = locator.Count()
雨爱无痕 已提交
262 263
	if err != nil || c == 0 {
		t.Errorf("Sync from zentao fail: %v", err)
雨爱无痕 已提交
264
		t.FailNow()
雨爱无痕 已提交
265
		return
雨爱无痕 已提交
266 267
	}
}
268

雨爱无痕 已提交
269
func SyncTwoCaseFromZentao(t provider.T) {
雨爱无痕 已提交
270 271
	t.ID("5468")
	t.AddParentSuite("管理禅道站点下工作目录")
272 273 274 275
	pw, err := playwright.Run()
	if err != nil {
		t.Error(err)
		t.FailNow()
雨爱无痕 已提交
276
		return
277
	}
雨爱无痕 已提交
278
	headless := true
279 280 281 282 283
	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()
雨爱无痕 已提交
284
		return
285 286 287 288 289
	}
	page, err := workspaceBrowser.NewPage()
	if err != nil {
		t.Errorf("Create the new page fail: %v", err)
		t.FailNow()
雨爱无痕 已提交
290
		return
291
	}
雨爱无痕 已提交
292 293 294 295 296 297 298 299 300 301 302 303
	defer func() {
		if err = workspaceBrowser.Close(); err != nil {
			t.Errorf("The workspaceBrowser cannot be closed: %v", err)
			t.FailNow()
			return
		}
		if err = pw.Stop(); err != nil {
			t.Errorf("The playwright cannot be stopped: %v", err)
			t.FailNow()
			return
		}
	}()
304 305 306 307
	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()
雨爱无痕 已提交
308
		return
309 310 311 312 313 314 315 316 317 318 319 320 321
	}
	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()
雨爱无痕 已提交
322
		return
323 324 325 326 327
	}
	locator.Click(playwright.PageClickOptions{Button: playwright.MouseButtonRight})
	if err != nil {
		t.Errorf("Right click node fail: %v", err)
		t.FailNow()
雨爱无痕 已提交
328
		return
329 330 331 332 333
	}
	page.Click(".tree-context-menu>>text=从禅道同步")
	if err != nil {
		t.Errorf("Click sync from zentao fail: %v", err)
		t.FailNow()
雨爱无痕 已提交
334
		return
335 336 337 338 339
	}
	_, err = page.WaitForSelector("#syncFromZentaoFormModal .z-tbody-checkbox")
	if err != nil {
		t.Errorf("Wait syncFromZentaoFormModal fail: %v", err)
		t.FailNow()
雨爱无痕 已提交
340
		return
341 342 343 344 345 346 347 348
	}
	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()
雨爱无痕 已提交
349
		return
350 351 352 353 354
	}
	_, err = page.WaitForSelector("#syncFromZentaoFormModal", playwright.PageWaitForSelectorOptions{State: playwright.WaitForSelectorStateHidden})
	if err != nil {
		t.Errorf("Wait syncFromZentaoFormModal hide fail: %v", err)
		t.FailNow()
雨爱无痕 已提交
355
		return
356 357 358 359 360 361 362
	}
	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()
雨爱无痕 已提交
363
		return
364 365 366
	}
}

雨爱无痕 已提交
367
func SyncToZentao(t provider.T) {
雨爱无痕 已提交
368 369
	t.ID("5468")
	t.AddParentSuite("管理禅道站点下工作目录")
雨爱无痕 已提交
370 371 372
	pw, err := playwright.Run()
	if err != nil {
		t.Error(err)
雨爱无痕 已提交
373
		t.FailNow()
雨爱无痕 已提交
374
		return
雨爱无痕 已提交
375
	}
雨爱无痕 已提交
376
	headless := true
雨爱无痕 已提交
377
	var slowMo float64 = 100
雨爱无痕 已提交
378
	workspaceBrowser, err := pw.Chromium.Launch(playwright.BrowserTypeLaunchOptions{Headless: &headless, SlowMo: &slowMo})
雨爱无痕 已提交
379
	if err != nil {
雨爱无痕 已提交
380 381
		t.Errorf("Fail to launch the web workspaceBrowser: %v", err)
		t.FailNow()
雨爱无痕 已提交
382
		return
雨爱无痕 已提交
383
	}
雨爱无痕 已提交
384
	page, err := workspaceBrowser.NewPage()
雨爱无痕 已提交
385 386
	if err != nil {
		t.Errorf("Create the new page fail: %v", err)
雨爱无痕 已提交
387
		t.FailNow()
雨爱无痕 已提交
388
		return
雨爱无痕 已提交
389
	}
雨爱无痕 已提交
390 391 392 393 394 395 396 397 398 399 400 401
	defer func() {
		if err = workspaceBrowser.Close(); err != nil {
			t.Errorf("The workspaceBrowser cannot be closed: %v", err)
			t.FailNow()
			return
		}
		if err = pw.Stop(); err != nil {
			t.Errorf("The playwright cannot be stopped: %v", err)
			t.FailNow()
			return
		}
	}()
雨爱无痕 已提交
402
	if _, err = page.Goto("http://127.0.0.1:8000/", playwright.PageGotoOptions{
雨爱无痕 已提交
403
		WaitUntil: playwright.WaitUntilStateDomcontentloaded}); err != nil {
雨爱无痕 已提交
404
		t.Errorf("The specific URL is missing: %v", err)
雨爱无痕 已提交
405
		t.FailNow()
雨爱无痕 已提交
406
		return
雨爱无痕 已提交
407
	}
雨爱无痕 已提交
408 409
	var waitTimeOut float64 = 5000
	_, err = page.WaitForSelector(".tree-node", playwright.PageWaitForSelectorOptions{Timeout: &waitTimeOut})
雨爱无痕 已提交
410
	if err != nil {
雨爱无痕 已提交
411 412 413
		CreateWorkspace(t)
		SyncFromZentao(t)
		return
雨爱无痕 已提交
414
	}
雨爱无痕 已提交
415 416
	locator, err := page.Locator(".tree-node", playwright.PageLocatorOptions{HasText: "单元测试工作目录"})
	c, err := locator.Count()
雨爱无痕 已提交
417 418
	if err != nil || c == 0 {
		t.Errorf("Find workspace fail: %v", err)
雨爱无痕 已提交
419
		t.FailNow()
雨爱无痕 已提交
420
		return
雨爱无痕 已提交
421
	}
雨爱无痕 已提交
422
	err = locator.Click(playwright.PageClickOptions{Button: playwright.MouseButtonRight})
雨爱无痕 已提交
423 424
	if err != nil {
		t.Errorf("Right click node fail: %v", err)
雨爱无痕 已提交
425
		t.FailNow()
雨爱无痕 已提交
426
		return
雨爱无痕 已提交
427 428 429 430
	}
	page.Click(".tree-context-menu>>text=同步到禅道")
	if err != nil {
		t.Errorf("Click sync to zentao fail: %v", err)
雨爱无痕 已提交
431
		t.FailNow()
雨爱无痕 已提交
432
		return
雨爱无痕 已提交
433 434 435 436
	}
	_, err = page.WaitForSelector(".toast-notification-close")
	if err != nil {
		t.Errorf("Wait toast-notification-close fail: %v", err)
雨爱无痕 已提交
437
		t.FailNow()
雨爱无痕 已提交
438
		return
雨爱无痕 已提交
439
	}
雨爱无痕 已提交
440 441
	locator, err = page.Locator(".toast-notification-container", playwright.PageLocatorOptions{HasText: "成功同步"})
	c, err = locator.Count()
雨爱无痕 已提交
442 443
	if err != nil || c == 0 {
		t.Errorf("Sync to zentao fail: %v", err)
雨爱无痕 已提交
444
		t.FailNow()
雨爱无痕 已提交
445
		return
雨爱无痕 已提交
446 447
	}
}
雨爱无痕 已提交
448
func Copy(t provider.T) {
雨爱无痕 已提交
449 450
	t.ID("5474")
	t.AddParentSuite("管理禅道站点下工作目录")
雨爱无痕 已提交
451 452 453
	pw, err := playwright.Run()
	if err != nil {
		t.Error(err)
雨爱无痕 已提交
454
		t.FailNow()
雨爱无痕 已提交
455
		return
雨爱无痕 已提交
456
	}
雨爱无痕 已提交
457
	headless := true
雨爱无痕 已提交
458
	var slowMo float64 = 100
雨爱无痕 已提交
459
	workspaceBrowser, err := pw.Chromium.Launch(playwright.BrowserTypeLaunchOptions{Headless: &headless, SlowMo: &slowMo})
雨爱无痕 已提交
460
	if err != nil {
雨爱无痕 已提交
461 462
		t.Errorf("Fail to launch the web workspaceBrowser: %v", err)
		t.FailNow()
雨爱无痕 已提交
463
		return
雨爱无痕 已提交
464
	}
雨爱无痕 已提交
465
	page, err := workspaceBrowser.NewPage()
雨爱无痕 已提交
466 467
	if err != nil {
		t.Errorf("Create the new page fail: %v", err)
雨爱无痕 已提交
468
		t.FailNow()
雨爱无痕 已提交
469
		return
雨爱无痕 已提交
470
	}
雨爱无痕 已提交
471 472 473 474 475 476 477 478 479 480 481 482
	defer func() {
		if err = workspaceBrowser.Close(); err != nil {
			t.Errorf("The workspaceBrowser cannot be closed: %v", err)
			t.FailNow()
			return
		}
		if err = pw.Stop(); err != nil {
			t.Errorf("The playwright cannot be stopped: %v", err)
			t.FailNow()
			return
		}
	}()
雨爱无痕 已提交
483
	if _, err = page.Goto("http://127.0.0.1:8000/", playwright.PageGotoOptions{
雨爱无痕 已提交
484
		WaitUntil: playwright.WaitUntilStateDomcontentloaded}); err != nil {
雨爱无痕 已提交
485
		t.Errorf("The specific URL is missing: %v", err)
雨爱无痕 已提交
486
		t.FailNow()
雨爱无痕 已提交
487
		return
雨爱无痕 已提交
488 489 490 491
	}
	_, err = page.WaitForSelector(".tree-node")
	if err != nil {
		t.Errorf("Wait tree-node fail: %v", err)
雨爱无痕 已提交
492
		t.FailNow()
雨爱无痕 已提交
493
		return
雨爱无痕 已提交
494
	}
雨爱无痕 已提交
495 496
	locator, err := page.Locator(".tree-node", playwright.PageLocatorOptions{HasText: "单元测试工作目录"})
	c, err := locator.Count()
雨爱无痕 已提交
497 498
	if err != nil || c == 0 {
		t.Errorf("Find workspace fail: %v", err)
雨爱无痕 已提交
499
		t.FailNow()
雨爱无痕 已提交
500
		return
雨爱无痕 已提交
501
	}
雨爱无痕 已提交
502
	err = locator.Click()
雨爱无痕 已提交
503 504
	if err != nil {
		t.Errorf("Click node fail: %v", err)
雨爱无痕 已提交
505
		t.FailNow()
雨爱无痕 已提交
506
		return
雨爱无痕 已提交
507
	}
雨爱无痕 已提交
508
	productLocator, err := locator.Locator(".tree-node-item:has-text('product1')")
雨爱无痕 已提交
509 510
	if err != nil {
		t.Errorf("Find product1 fail: %v", err)
雨爱无痕 已提交
511
		t.FailNow()
雨爱无痕 已提交
512
		return
雨爱无痕 已提交
513 514 515 516
	}
	err = productLocator.Click()
	if err != nil {
		t.Errorf("Click product1 fail: %v", err)
雨爱无痕 已提交
517
		t.FailNow()
雨爱无痕 已提交
518
		return
雨爱无痕 已提交
519
	}
雨爱无痕 已提交
520
	scriptLocator, err := locator.Locator("text=1_string_match.php")
雨爱无痕 已提交
521
	if err != nil {
雨爱无痕 已提交
522 523
		t.Errorf("Find 1_string_match.php fail: %v", err)
		t.FailNow()
雨爱无痕 已提交
524
		return
雨爱无痕 已提交
525 526 527 528
	}
	err = scriptLocator.Click(playwright.PageClickOptions{Button: playwright.MouseButtonRight})
	if err != nil {
		t.Errorf("Right click script fail: %v", err)
雨爱无痕 已提交
529
		t.FailNow()
雨爱无痕 已提交
530
		return
雨爱无痕 已提交
531 532 533 534
	}
	err = page.Click(".tree-context-menu>>text=复制")
	if err != nil {
		t.Errorf("Click copy fail: %v", err)
雨爱无痕 已提交
535
		t.FailNow()
雨爱无痕 已提交
536
		return
雨爱无痕 已提交
537 538 539 540
	}
	err = productLocator.Click(playwright.PageClickOptions{Button: playwright.MouseButtonRight})
	if err != nil {
		t.Errorf("Right click workspace fail: %v", err)
雨爱无痕 已提交
541
		t.FailNow()
雨爱无痕 已提交
542
		return
雨爱无痕 已提交
543 544 545 546
	}
	err = page.Click(".tree-context-menu>>text=粘贴")
	if err != nil {
		t.Errorf("Click parse fail: %v", err)
雨爱无痕 已提交
547
		t.FailNow()
雨爱无痕 已提交
548
		return
雨爱无痕 已提交
549 550
	}
	page.WaitForTimeout(1000)
雨爱无痕 已提交
551
	scriptLocator, err = locator.Locator(".tree-node-item>>div:has-text('1_string_match.php')")
雨爱无痕 已提交
552 553 554
	c, err = scriptLocator.Count()
	if err != nil || c < 2 {
		t.Errorf("Find workspace fail: %v", err)
雨爱无痕 已提交
555
		t.FailNow()
雨爱无痕 已提交
556
		return
雨爱无痕 已提交
557 558
	}
}
雨爱无痕 已提交
559
func DeleteScript(t provider.T) {
雨爱无痕 已提交
560 561
	t.ID("5478")
	t.AddParentSuite("管理禅道站点下工作目录")
雨爱无痕 已提交
562 563 564
	pw, err := playwright.Run()
	if err != nil {
		t.Error(err)
雨爱无痕 已提交
565
		t.FailNow()
雨爱无痕 已提交
566
		return
雨爱无痕 已提交
567
	}
雨爱无痕 已提交
568
	headless := true
雨爱无痕 已提交
569
	var slowMo float64 = 100
雨爱无痕 已提交
570
	workspaceBrowser, err := pw.Chromium.Launch(playwright.BrowserTypeLaunchOptions{Headless: &headless, SlowMo: &slowMo})
雨爱无痕 已提交
571
	if err != nil {
雨爱无痕 已提交
572 573
		t.Errorf("Fail to launch the web workspaceBrowser: %v", err)
		t.FailNow()
雨爱无痕 已提交
574
		return
雨爱无痕 已提交
575
	}
雨爱无痕 已提交
576
	page, err := workspaceBrowser.NewPage()
雨爱无痕 已提交
577 578
	if err != nil {
		t.Errorf("Create the new page fail: %v", err)
雨爱无痕 已提交
579
		t.FailNow()
雨爱无痕 已提交
580
		return
雨爱无痕 已提交
581
	}
雨爱无痕 已提交
582 583 584 585 586 587 588 589 590 591 592 593
	defer func() {
		if err = workspaceBrowser.Close(); err != nil {
			t.Errorf("The workspaceBrowser cannot be closed: %v", err)
			t.FailNow()
			return
		}
		if err = pw.Stop(); err != nil {
			t.Errorf("The playwright cannot be stopped: %v", err)
			t.FailNow()
			return
		}
	}()
雨爱无痕 已提交
594
	if _, err = page.Goto("http://127.0.0.1:8000/", playwright.PageGotoOptions{
雨爱无痕 已提交
595
		WaitUntil: playwright.WaitUntilStateDomcontentloaded}); err != nil {
雨爱无痕 已提交
596
		t.Errorf("The specific URL is missing: %v", err)
雨爱无痕 已提交
597
		t.FailNow()
雨爱无痕 已提交
598
		return
雨爱无痕 已提交
599 600 601 602
	}
	_, err = page.WaitForSelector(".tree-node")
	if err != nil {
		t.Errorf("Wait tree-node fail: %v", err)
雨爱无痕 已提交
603
		t.FailNow()
雨爱无痕 已提交
604
		return
雨爱无痕 已提交
605
	}
雨爱无痕 已提交
606 607
	locator, err := page.Locator(".tree-node", playwright.PageLocatorOptions{HasText: "单元测试工作目录"})
	c, err := locator.Count()
雨爱无痕 已提交
608 609
	if err != nil || c == 0 {
		t.Errorf("Find workspace fail: %v", err)
雨爱无痕 已提交
610
		t.FailNow()
雨爱无痕 已提交
611
		return
雨爱无痕 已提交
612
	}
雨爱无痕 已提交
613
	err = locator.Click()
雨爱无痕 已提交
614 615
	if err != nil {
		t.Errorf("Click node fail: %v", err)
雨爱无痕 已提交
616
		t.FailNow()
雨爱无痕 已提交
617
		return
雨爱无痕 已提交
618
	}
雨爱无痕 已提交
619
	scriptLocator, err := locator.Locator("text=1.php")
雨爱无痕 已提交
620
	if err != nil {
雨爱无痕 已提交
621 622
		t.Errorf("Find 1.php fail: %v", err)
		t.FailNow()
雨爱无痕 已提交
623
		return
雨爱无痕 已提交
624 625 626 627
	}
	err = scriptLocator.Click(playwright.PageClickOptions{Button: playwright.MouseButtonRight})
	if err != nil {
		t.Errorf("Right click script fail: %v", err)
雨爱无痕 已提交
628
		t.FailNow()
雨爱无痕 已提交
629
		return
雨爱无痕 已提交
630 631 632 633
	}
	err = page.Click(".tree-context-menu>>text=删除")
	if err != nil {
		t.Errorf("Click delete fail: %v", err)
雨爱无痕 已提交
634
		t.FailNow()
雨爱无痕 已提交
635
		return
雨爱无痕 已提交
636 637 638 639
	}
	err = page.Click(".modal-action>>span:has-text(\"确定\")")
	if err != nil {
		t.Errorf("The Click submit form fail: %v", err)
雨爱无痕 已提交
640
		t.FailNow()
雨爱无痕 已提交
641
		return
雨爱无痕 已提交
642 643
	}
	page.WaitForTimeout(1000)
雨爱无痕 已提交
644
	scriptLocator, err = locator.Locator(".tree-node-item>>div:has-text('1.php')")
雨爱无痕 已提交
645 646 647
	c, err = scriptLocator.Count()
	if err != nil || c > 0 {
		t.Errorf("Delete workspace fail: %v", err)
雨爱无痕 已提交
648
		t.FailNow()
雨爱无痕 已提交
649
		return
雨爱无痕 已提交
650 651
	}
}
雨爱无痕 已提交
652
func DeleteDir(t provider.T) {
雨爱无痕 已提交
653 654
	t.ID("5477")
	t.AddParentSuite("管理禅道站点下工作目录")
雨爱无痕 已提交
655 656 657
	pw, err := playwright.Run()
	if err != nil {
		t.Error(err)
雨爱无痕 已提交
658
		t.FailNow()
雨爱无痕 已提交
659
		return
雨爱无痕 已提交
660
	}
雨爱无痕 已提交
661
	headless := true
雨爱无痕 已提交
662
	var slowMo float64 = 100
雨爱无痕 已提交
663
	workspaceBrowser, err := pw.Chromium.Launch(playwright.BrowserTypeLaunchOptions{Headless: &headless, SlowMo: &slowMo})
雨爱无痕 已提交
664
	if err != nil {
雨爱无痕 已提交
665 666
		t.Errorf("Fail to launch the web workspaceBrowser: %v", err)
		t.FailNow()
雨爱无痕 已提交
667
		return
雨爱无痕 已提交
668
	}
雨爱无痕 已提交
669
	page, err := workspaceBrowser.NewPage()
雨爱无痕 已提交
670 671
	if err != nil {
		t.Errorf("Create the new page fail: %v", err)
雨爱无痕 已提交
672
		t.FailNow()
雨爱无痕 已提交
673
		return
雨爱无痕 已提交
674
	}
雨爱无痕 已提交
675 676 677 678 679 680 681 682 683 684 685 686
	defer func() {
		if err = workspaceBrowser.Close(); err != nil {
			t.Errorf("The workspaceBrowser cannot be closed: %v", err)
			t.FailNow()
			return
		}
		if err = pw.Stop(); err != nil {
			t.Errorf("The playwright cannot be stopped: %v", err)
			t.FailNow()
			return
		}
	}()
雨爱无痕 已提交
687
	if _, err = page.Goto("http://127.0.0.1:8000/", playwright.PageGotoOptions{
雨爱无痕 已提交
688
		WaitUntil: playwright.WaitUntilStateDomcontentloaded}); err != nil {
雨爱无痕 已提交
689
		t.Errorf("The specific URL is missing: %v", err)
雨爱无痕 已提交
690
		t.FailNow()
雨爱无痕 已提交
691
		return
雨爱无痕 已提交
692 693 694 695
	}
	_, err = page.WaitForSelector(".tree-node")
	if err != nil {
		t.Errorf("Wait tree-node fail: %v", err)
雨爱无痕 已提交
696
		t.FailNow()
雨爱无痕 已提交
697
		return
雨爱无痕 已提交
698
	}
雨爱无痕 已提交
699 700
	locator, err := page.Locator(".tree-node", playwright.PageLocatorOptions{HasText: "单元测试工作目录"})
	c, err := locator.Count()
雨爱无痕 已提交
701 702
	if err != nil || c == 0 {
		t.Errorf("Find workspace fail: %v", err)
雨爱无痕 已提交
703
		t.FailNow()
雨爱无痕 已提交
704
		return
雨爱无痕 已提交
705
	}
雨爱无痕 已提交
706
	err = locator.Click()
雨爱无痕 已提交
707 708
	if err != nil {
		t.Errorf("Click node fail: %v", err)
雨爱无痕 已提交
709
		t.FailNow()
雨爱无痕 已提交
710
		return
雨爱无痕 已提交
711
	}
雨爱无痕 已提交
712
	productLocator, err := locator.Locator(".tree-node-item:has-text('product1')")
雨爱无痕 已提交
713 714
	if err != nil {
		t.Errorf("Find product1 fail: %v", err)
雨爱无痕 已提交
715
		t.FailNow()
雨爱无痕 已提交
716
		return
雨爱无痕 已提交
717 718 719 720
	}
	err = productLocator.Click(playwright.PageClickOptions{Button: playwright.MouseButtonRight})
	if err != nil {
		t.Errorf("Right click script fail: %v", err)
雨爱无痕 已提交
721
		t.FailNow()
雨爱无痕 已提交
722
		return
雨爱无痕 已提交
723 724 725 726
	}
	err = page.Click(".tree-context-menu>>text=删除")
	if err != nil {
		t.Errorf("Click delete fail: %v", err)
雨爱无痕 已提交
727
		t.FailNow()
雨爱无痕 已提交
728
		return
雨爱无痕 已提交
729 730 731 732
	}
	err = page.Click(".modal-action>>span:has-text(\"确定\")")
	if err != nil {
		t.Errorf("The Click submit form fail: %v", err)
雨爱无痕 已提交
733
		t.FailNow()
雨爱无痕 已提交
734
		return
雨爱无痕 已提交
735 736
	}
	page.WaitForTimeout(1000)
雨爱无痕 已提交
737
	scriptLocator, err := locator.Locator(".tree-node-item>>div:has-text('product1')")
雨爱无痕 已提交
738 739 740
	c, err = scriptLocator.Count()
	if err != nil || c > 0 {
		t.Errorf("Delete workspace fail: %v", err)
雨爱无痕 已提交
741
		t.FailNow()
雨爱无痕 已提交
742
		return
雨爱无痕 已提交
743 744 745
	}
}

雨爱无痕 已提交
746
func DeleteWorkspace(t provider.T) {
雨爱无痕 已提交
747 748
	t.ID("5468")
	t.AddParentSuite("管理禅道站点下工作目录")
雨爱无痕 已提交
749 750 751
	pw, err := playwright.Run()
	if err != nil {
		t.Error(err)
雨爱无痕 已提交
752
		t.FailNow()
雨爱无痕 已提交
753
		return
雨爱无痕 已提交
754
	}
雨爱无痕 已提交
755
	headless := true
雨爱无痕 已提交
756
	var slowMo float64 = 100
雨爱无痕 已提交
757
	workspaceBrowser, err := pw.Chromium.Launch(playwright.BrowserTypeLaunchOptions{Headless: &headless, SlowMo: &slowMo})
雨爱无痕 已提交
758
	if err != nil {
雨爱无痕 已提交
759 760
		t.Errorf("Fail to launch the web workspaceBrowser: %v", err)
		t.FailNow()
雨爱无痕 已提交
761
		return
雨爱无痕 已提交
762
	}
雨爱无痕 已提交
763
	page, err := workspaceBrowser.NewPage()
雨爱无痕 已提交
764 765
	if err != nil {
		t.Errorf("Create the new page fail: %v", err)
雨爱无痕 已提交
766
		t.FailNow()
雨爱无痕 已提交
767
		return
雨爱无痕 已提交
768
	}
雨爱无痕 已提交
769 770 771 772 773 774 775 776 777 778 779 780
	defer func() {
		if err = workspaceBrowser.Close(); err != nil {
			t.Errorf("The workspaceBrowser cannot be closed: %v", err)
			t.FailNow()
			return
		}
		if err = pw.Stop(); err != nil {
			t.Errorf("The playwright cannot be stopped: %v", err)
			t.FailNow()
			return
		}
	}()
雨爱无痕 已提交
781
	if _, err = page.Goto("http://127.0.0.1:8000/", playwright.PageGotoOptions{
雨爱无痕 已提交
782
		WaitUntil: playwright.WaitUntilStateDomcontentloaded}); err != nil {
雨爱无痕 已提交
783
		t.Errorf("The specific URL is missing: %v", err)
雨爱无痕 已提交
784
		t.FailNow()
雨爱无痕 已提交
785
		return
雨爱无痕 已提交
786 787 788 789
	}
	_, err = page.WaitForSelector(".tree-node")
	if err != nil {
		t.Errorf("Wait tree-node fail: %v", err)
雨爱无痕 已提交
790
		t.FailNow()
雨爱无痕 已提交
791
		return
雨爱无痕 已提交
792
	}
雨爱无痕 已提交
793 794
	locator, err := page.Locator(".tree-node-item", playwright.PageLocatorOptions{HasText: "单元测试工作目录"})
	c, err := locator.Count()
雨爱无痕 已提交
795 796
	if err != nil || c == 0 {
		t.Errorf("Find workspace fail: %v", err)
雨爱无痕 已提交
797
		t.FailNow()
雨爱无痕 已提交
798
		return
雨爱无痕 已提交
799
	}
雨爱无痕 已提交
800
	err = locator.Hover()
雨爱无痕 已提交
801 802
	if err != nil {
		t.Errorf("The hover workspace fail: %v", err)
雨爱无痕 已提交
803
		t.FailNow()
雨爱无痕 已提交
804
		return
雨爱无痕 已提交
805 806 807 808
	}
	err = page.Click(`[title="删除"]`)
	if err != nil {
		t.Errorf("The click delete fail: %v", err)
雨爱无痕 已提交
809
		t.FailNow()
雨爱无痕 已提交
810
		return
雨爱无痕 已提交
811 812 813 814
	}
	err = page.Click(".modal-action>>span:has-text(\"确定\")")
	if err != nil {
		t.Errorf("The Click submit form fail: %v", err)
雨爱无痕 已提交
815
		t.FailNow()
雨爱无痕 已提交
816
		return
雨爱无痕 已提交
817 818 819 820 821 822
	}
	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)
雨爱无痕 已提交
823
		t.FailNow()
雨爱无痕 已提交
824
		return
雨爱无痕 已提交
825 826
	}
}
雨爱无痕 已提交
827
func Clip(t provider.T) {
雨爱无痕 已提交
828 829
	t.ID("5476")
	t.AddParentSuite("管理禅道站点下工作目录")
雨爱无痕 已提交
830 831 832
	pw, err := playwright.Run()
	if err != nil {
		t.Error(err)
雨爱无痕 已提交
833
		t.FailNow()
雨爱无痕 已提交
834
		return
雨爱无痕 已提交
835
	}
雨爱无痕 已提交
836
	headless := true
雨爱无痕 已提交
837
	var slowMo float64 = 100
雨爱无痕 已提交
838
	workspaceBrowser, err := pw.Chromium.Launch(playwright.BrowserTypeLaunchOptions{Headless: &headless, SlowMo: &slowMo})
雨爱无痕 已提交
839
	if err != nil {
雨爱无痕 已提交
840 841
		t.Errorf("Fail to launch the web workspaceBrowser: %v", err)
		t.FailNow()
雨爱无痕 已提交
842
		return
雨爱无痕 已提交
843
	}
雨爱无痕 已提交
844
	page, err := workspaceBrowser.NewPage()
雨爱无痕 已提交
845 846
	if err != nil {
		t.Errorf("Create the new page fail: %v", err)
雨爱无痕 已提交
847
		t.FailNow()
雨爱无痕 已提交
848
		return
雨爱无痕 已提交
849
	}
雨爱无痕 已提交
850 851 852 853 854 855 856 857 858 859 860 861
	defer func() {
		if err = workspaceBrowser.Close(); err != nil {
			t.Errorf("The workspaceBrowser cannot be closed: %v", err)
			t.FailNow()
			return
		}
		if err = pw.Stop(); err != nil {
			t.Errorf("The playwright cannot be stopped: %v", err)
			t.FailNow()
			return
		}
	}()
雨爱无痕 已提交
862
	if _, err = page.Goto("http://127.0.0.1:8000/", playwright.PageGotoOptions{
雨爱无痕 已提交
863
		WaitUntil: playwright.WaitUntilStateDomcontentloaded}); err != nil {
雨爱无痕 已提交
864
		t.Errorf("The specific URL is missing: %v", err)
雨爱无痕 已提交
865
		t.FailNow()
雨爱无痕 已提交
866
		return
雨爱无痕 已提交
867 868 869 870
	}
	_, err = page.WaitForSelector(".tree-node")
	if err != nil {
		t.Errorf("Wait tree-node fail: %v", err)
雨爱无痕 已提交
871
		t.FailNow()
雨爱无痕 已提交
872
		return
雨爱无痕 已提交
873
	}
雨爱无痕 已提交
874 875
	locator, err := page.Locator(".tree-node", playwright.PageLocatorOptions{HasText: "单元测试工作目录"})
	c, err := locator.Count()
雨爱无痕 已提交
876 877
	if err != nil || c == 0 {
		t.Errorf("Find workspace fail: %v", err)
雨爱无痕 已提交
878
		t.FailNow()
雨爱无痕 已提交
879
		return
雨爱无痕 已提交
880
	}
雨爱无痕 已提交
881
	err = locator.Click()
雨爱无痕 已提交
882 883
	if err != nil {
		t.Errorf("Click node fail: %v", err)
雨爱无痕 已提交
884
		t.FailNow()
雨爱无痕 已提交
885
		return
雨爱无痕 已提交
886
	}
雨爱无痕 已提交
887
	productLocator, err := locator.Locator(".tree-node-item:has-text('product1')")
雨爱无痕 已提交
888 889
	if err != nil {
		t.Errorf("Find product1 fail: %v", err)
雨爱无痕 已提交
890
		t.FailNow()
雨爱无痕 已提交
891
		return
雨爱无痕 已提交
892 893 894 895
	}
	err = productLocator.Click()
	if err != nil {
		t.Errorf("Click product1 fail: %v", err)
雨爱无痕 已提交
896
		t.FailNow()
雨爱无痕 已提交
897
		return
雨爱无痕 已提交
898
	}
雨爱无痕 已提交
899
	scriptLocator, err := locator.Locator("text=1.php")
雨爱无痕 已提交
900
	if err != nil {
雨爱无痕 已提交
901 902
		t.Errorf("Find 1.php fail: %v", err)
		t.FailNow()
雨爱无痕 已提交
903
		return
雨爱无痕 已提交
904 905 906 907
	}
	err = scriptLocator.Click(playwright.PageClickOptions{Button: playwright.MouseButtonRight})
	if err != nil {
		t.Errorf("Right click script fail: %v", err)
雨爱无痕 已提交
908
		t.FailNow()
雨爱无痕 已提交
909
		return
雨爱无痕 已提交
910 911 912 913
	}
	err = page.Click(".tree-context-menu>>text=剪切")
	if err != nil {
		t.Errorf("Click copy fail: %v", err)
雨爱无痕 已提交
914
		t.FailNow()
雨爱无痕 已提交
915
		return
雨爱无痕 已提交
916 917 918 919
	}
	workspaceLocator, err := page.Locator(".tree-node-title", playwright.PageLocatorOptions{HasText: "单元测试工作目录"})
	if err != nil {
		t.Errorf("Find workspace fail: %v", err)
雨爱无痕 已提交
920
		t.FailNow()
雨爱无痕 已提交
921
		return
雨爱无痕 已提交
922 923 924 925
	}
	err = workspaceLocator.Click(playwright.PageClickOptions{Button: playwright.MouseButtonRight})
	if err != nil {
		t.Errorf("Right click workspace fail: %v", err)
雨爱无痕 已提交
926
		t.FailNow()
雨爱无痕 已提交
927
		return
雨爱无痕 已提交
928 929 930 931
	}
	err = page.Click(".tree-context-menu>>text=粘贴")
	if err != nil {
		t.Errorf("Click parse fail: %v", err)
雨爱无痕 已提交
932
		t.FailNow()
雨爱无痕 已提交
933
		return
雨爱无痕 已提交
934 935
	}
	page.WaitForTimeout(1000)
雨爱无痕 已提交
936
	scriptLocator, err = locator.Locator(".tree-node-item>>div:has-text('1.php')")
雨爱无痕 已提交
937 938 939
	c, err = scriptLocator.Count()
	if err != nil || c < 1 {
		t.Errorf("Find workspace fail: %v", err)
雨爱无痕 已提交
940
		t.FailNow()
雨爱无痕 已提交
941
		return
雨爱无痕 已提交
942 943 944
	}
}

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

雨爱无痕 已提交
987
	locator, err := page.Locator("#siteMenuToggle")
雨爱无痕 已提交
988 989
	if err != nil {
		t.Errorf("The siteMenuToggle is missing: %v", err)
雨爱无痕 已提交
990
		t.FailNow()
雨爱无痕 已提交
991
		return
雨爱无痕 已提交
992
	}
雨爱无痕 已提交
993
	err = locator.Click()
雨爱无痕 已提交
994 995
	if err != nil {
		t.Errorf("The Click is fail: %v", err)
雨爱无痕 已提交
996
		t.FailNow()
雨爱无痕 已提交
997
		return
雨爱无痕 已提交
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
		return
雨爱无痕 已提交
1004
	}
雨爱无痕 已提交
1005
	err = page.Click(".list-item-title>>text=单元测试站点")
雨爱无痕 已提交
1006 1007
	if err != nil {
		t.Errorf("The Click workspace nav fail: %v", err)
雨爱无痕 已提交
1008
		t.FailNow()
雨爱无痕 已提交
1009
		return
雨爱无痕 已提交
1010 1011 1012 1013
	}
	err = page.Click(`[title="筛选"]`)
	if err != nil {
		t.Errorf("The Click create workspace fail: %v", err)
雨爱无痕 已提交
1014
		t.FailNow()
雨爱无痕 已提交
1015
		return
雨爱无痕 已提交
1016 1017 1018 1019
	}
	_, err = page.WaitForSelector("#filterModal")
	if err != nil {
		t.Errorf("Wait filter modal fail: %v", err)
雨爱无痕 已提交
1020
		t.FailNow()
雨爱无痕 已提交
1021
		return
雨爱无痕 已提交
1022 1023
	}

雨爱无痕 已提交
1024
	err = page.Click("#filterModal>>div:has-text(\"单元测试工作目录\")")
雨爱无痕 已提交
1025 1026
	if err != nil {
		t.Errorf("The Click php filter fail: %v", err)
雨爱无痕 已提交
1027
		t.FailNow()
雨爱无痕 已提交
1028
		return
雨爱无痕 已提交
1029 1030 1031 1032
	}
	eleArr, err := page.QuerySelectorAll("#leftPane .tree .tree-node")
	if len(eleArr) != 1 {
		t.Errorf("Filter valid fail: %v", err)
雨爱无痕 已提交
1033
		t.FailNow()
雨爱无痕 已提交
1034
		return
雨爱无痕 已提交
1035 1036
	}
}
雨爱无痕 已提交
1037
func FilterSuite(t provider.T) {
雨爱无痕 已提交
1038 1039
	t.ID("5495")
	t.AddParentSuite("管理禅道站点下工作目录")
雨爱无痕 已提交
1040 1041 1042
	pw, err := playwright.Run()
	if err != nil {
		t.Error(err)
雨爱无痕 已提交
1043
		t.FailNow()
雨爱无痕 已提交
1044
		return
雨爱无痕 已提交
1045
	}
雨爱无痕 已提交
1046
	headless := true
雨爱无痕 已提交
1047
	var slowMo float64 = 100
雨爱无痕 已提交
1048
	workspaceBrowser, err := pw.Chromium.Launch(playwright.BrowserTypeLaunchOptions{Headless: &headless, SlowMo: &slowMo})
雨爱无痕 已提交
1049
	if err != nil {
雨爱无痕 已提交
1050 1051
		t.Errorf("Fail to launch the web workspaceBrowser: %v", err)
		t.FailNow()
雨爱无痕 已提交
1052
		return
雨爱无痕 已提交
1053
	}
雨爱无痕 已提交
1054
	page, err := workspaceBrowser.NewPage()
雨爱无痕 已提交
1055 1056
	if err != nil {
		t.Errorf("Create the new page fail: %v", err)
雨爱无痕 已提交
1057
		t.FailNow()
雨爱无痕 已提交
1058
		return
雨爱无痕 已提交
1059
	}
雨爱无痕 已提交
1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071
	defer func() {
		if err = workspaceBrowser.Close(); err != nil {
			t.Errorf("The workspaceBrowser cannot be closed: %v", err)
			t.FailNow()
			return
		}
		if err = pw.Stop(); err != nil {
			t.Errorf("The playwright cannot be stopped: %v", err)
			t.FailNow()
			return
		}
	}()
雨爱无痕 已提交
1072
	if _, err = page.Goto("http://127.0.0.1:8000/", playwright.PageGotoOptions{
雨爱无痕 已提交
1073
		WaitUntil: playwright.WaitUntilStateDomcontentloaded}); err != nil {
雨爱无痕 已提交
1074
		t.Errorf("The specific URL is missing: %v", err)
雨爱无痕 已提交
1075
		t.FailNow()
雨爱无痕 已提交
1076
		return
雨爱无痕 已提交
1077 1078
	}

雨爱无痕 已提交
1079
	locator, err := page.Locator("#siteMenuToggle")
雨爱无痕 已提交
1080 1081
	if err != nil {
		t.Errorf("The siteMenuToggle is missing: %v", err)
雨爱无痕 已提交
1082
		t.FailNow()
雨爱无痕 已提交
1083
		return
雨爱无痕 已提交
1084
	}
雨爱无痕 已提交
1085
	err = locator.Click()
雨爱无痕 已提交
1086 1087
	if err != nil {
		t.Errorf("The Click is fail: %v", err)
雨爱无痕 已提交
1088
		t.FailNow()
雨爱无痕 已提交
1089
		return
雨爱无痕 已提交
1090 1091 1092 1093
	}
	_, err = page.WaitForSelector("#navbar .list-item")
	if err != nil {
		t.Errorf("Wait for workspace list nav fail: %v", err)
雨爱无痕 已提交
1094
		t.FailNow()
雨爱无痕 已提交
1095
		return
雨爱无痕 已提交
1096
	}
雨爱无痕 已提交
1097
	err = page.Click(".list-item-title>>text=单元测试站点")
雨爱无痕 已提交
1098 1099
	if err != nil {
		t.Errorf("The Click workspace nav fail: %v", err)
雨爱无痕 已提交
1100
		t.FailNow()
雨爱无痕 已提交
1101
		return
雨爱无痕 已提交
1102 1103 1104 1105
	}
	err = page.Click(`[title="筛选"]`)
	if err != nil {
		t.Errorf("The Click create workspace fail: %v", err)
雨爱无痕 已提交
1106
		t.FailNow()
雨爱无痕 已提交
1107
		return
雨爱无痕 已提交
1108 1109 1110 1111
	}
	_, err = page.WaitForSelector("#filterModal")
	if err != nil {
		t.Errorf("Wait filter modal fail: %v", err)
雨爱无痕 已提交
1112
		t.FailNow()
雨爱无痕 已提交
1113
		return
雨爱无痕 已提交
1114 1115 1116 1117 1118
	}
	page.WaitForTimeout(600)
	err = page.Click("#filterModal>>.tab-nav:has-text(\"按套件\")")
	if err != nil {
		t.Errorf("The Click by suite fail: %v", err)
雨爱无痕 已提交
1119
		t.FailNow()
雨爱无痕 已提交
1120
		return
雨爱无痕 已提交
1121 1122 1123 1124 1125
	}
	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)
雨爱无痕 已提交
1126
		t.FailNow()
雨爱无痕 已提交
1127
		return
雨爱无痕 已提交
1128
	}
雨爱无痕 已提交
1129
	page.WaitForTimeout(200)
雨爱无痕 已提交
1130
	page.WaitForSelector(".toolbar:has-text(\"按套件\")")
雨爱无痕 已提交
1131
	err = page.Click(".tree-node-title:has-text(\"单元测试工作目录\")")
雨爱无痕 已提交
1132
	page.WaitForSelector(".tree")
雨爱无痕 已提交
1133
	page.WaitForTimeout(200)
雨爱无痕 已提交
1134 1135 1136 1137
	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)
雨爱无痕 已提交
1138
		t.FailNow()
雨爱无痕 已提交
1139
		return
雨爱无痕 已提交
1140 1141
	}
}
雨爱无痕 已提交
1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161
func ByModule(t provider.T) {
	t.ID("5493")
	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()
	}
雨爱无痕 已提交
1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173
	defer func() {
		if err = workspaceBrowser.Close(); err != nil {
			t.Errorf("The workspaceBrowser cannot be closed: %v", err)
			t.FailNow()
			return
		}
		if err = pw.Stop(); err != nil {
			t.Errorf("The playwright cannot be stopped: %v", err)
			t.FailNow()
			return
		}
	}()
雨爱无痕 已提交
1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227
	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(".tree-node-title:has-text(\"单元测试工作目录\")")
	if err != nil {
		t.Errorf("The Click 单元测试工作目录 workspace fail: %v", err)
		t.FailNow()
	}
	err = page.Click("#displayByMenuToggle")
	if err != nil {
		t.Errorf("The Click byModule btn fail: %v", err)
		t.FailNow()
	}
	page.WaitForTimeout(100)
	err = page.Click(".dropdown-menu>>.list-item-content:has-text(\"按模块\")")
	if err != nil {
		t.Errorf("The Click by module fail: %v", err)
		t.FailNow()
	}
	err = page.Click(".tree-node-title:has-text(\"module1\")")
	if err != nil {
		t.Errorf("The Click module1 dir fail: %v", err)
		t.FailNow()
	}
	scriptLocator, err := page.Locator(".tree-node>>:has-text(\"check string matches pattern\")")
	c, err := scriptLocator.Count()
	if err != nil || c == 0 {
		t.Errorf("Filter suite fail: %v", err)
		t.FailNow()
	}
}
雨爱无痕 已提交
1228
func FilterTask(t provider.T) {
雨爱无痕 已提交
1229 1230
	t.ID("5496")
	t.AddParentSuite("管理禅道站点下工作目录")
雨爱无痕 已提交
1231 1232 1233
	pw, err := playwright.Run()
	if err != nil {
		t.Error(err)
雨爱无痕 已提交
1234
		t.FailNow()
雨爱无痕 已提交
1235
		return
雨爱无痕 已提交
1236
	}
雨爱无痕 已提交
1237
	headless := true
雨爱无痕 已提交
1238
	var slowMo float64 = 100
雨爱无痕 已提交
1239
	workspaceBrowser, err := pw.Chromium.Launch(playwright.BrowserTypeLaunchOptions{Headless: &headless, SlowMo: &slowMo})
雨爱无痕 已提交
1240
	if err != nil {
雨爱无痕 已提交
1241 1242
		t.Errorf("Fail to launch the web workspaceBrowser: %v", err)
		t.FailNow()
雨爱无痕 已提交
1243
		return
雨爱无痕 已提交
1244
	}
雨爱无痕 已提交
1245
	page, err := workspaceBrowser.NewPage()
雨爱无痕 已提交
1246 1247
	if err != nil {
		t.Errorf("Create the new page fail: %v", err)
雨爱无痕 已提交
1248
		t.FailNow()
雨爱无痕 已提交
1249
		return
雨爱无痕 已提交
1250
	}
雨爱无痕 已提交
1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262
	defer func() {
		if err = workspaceBrowser.Close(); err != nil {
			t.Errorf("The workspaceBrowser cannot be closed: %v", err)
			t.FailNow()
			return
		}
		if err = pw.Stop(); err != nil {
			t.Errorf("The playwright cannot be stopped: %v", err)
			t.FailNow()
			return
		}
	}()
雨爱无痕 已提交
1263
	if _, err = page.Goto("http://127.0.0.1:8000/", playwright.PageGotoOptions{
雨爱无痕 已提交
1264
		WaitUntil: playwright.WaitUntilStateDomcontentloaded}); err != nil {
雨爱无痕 已提交
1265
		t.Errorf("The specific URL is missing: %v", err)
雨爱无痕 已提交
1266
		t.FailNow()
雨爱无痕 已提交
1267
		return
雨爱无痕 已提交
1268 1269
	}

雨爱无痕 已提交
1270
	locator, err := page.Locator("#siteMenuToggle")
雨爱无痕 已提交
1271 1272
	if err != nil {
		t.Errorf("The siteMenuToggle is missing: %v", err)
雨爱无痕 已提交
1273
		t.FailNow()
雨爱无痕 已提交
1274
		return
雨爱无痕 已提交
1275
	}
雨爱无痕 已提交
1276
	err = locator.Click()
雨爱无痕 已提交
1277 1278
	if err != nil {
		t.Errorf("The Click is fail: %v", err)
雨爱无痕 已提交
1279
		t.FailNow()
雨爱无痕 已提交
1280
		return
雨爱无痕 已提交
1281 1282 1283 1284
	}
	_, err = page.WaitForSelector("#navbar .list-item")
	if err != nil {
		t.Errorf("Wait for workspace list nav fail: %v", err)
雨爱无痕 已提交
1285
		t.FailNow()
雨爱无痕 已提交
1286
		return
雨爱无痕 已提交
1287
	}
雨爱无痕 已提交
1288
	err = page.Click(".list-item-title>>text=单元测试站点")
雨爱无痕 已提交
1289 1290
	if err != nil {
		t.Errorf("The Click workspace nav fail: %v", err)
雨爱无痕 已提交
1291
		t.FailNow()
雨爱无痕 已提交
1292
		return
雨爱无痕 已提交
1293 1294 1295 1296
	}
	err = page.Click(`[title="筛选"]`)
	if err != nil {
		t.Errorf("The Click create workspace fail: %v", err)
雨爱无痕 已提交
1297
		t.FailNow()
雨爱无痕 已提交
1298
		return
雨爱无痕 已提交
1299 1300 1301 1302
	}
	_, err = page.WaitForSelector("#filterModal")
	if err != nil {
		t.Errorf("Wait filter modal fail: %v", err)
雨爱无痕 已提交
1303
		t.FailNow()
雨爱无痕 已提交
1304
		return
雨爱无痕 已提交
1305 1306
	}
	page.WaitForTimeout(600)
雨爱无痕 已提交
1307
	err = page.Click("#filterModal>>.tab-nav:has-text(\"按测试单\")")
雨爱无痕 已提交
1308 1309
	if err != nil {
		t.Errorf("The Click by suite fail: %v", err)
雨爱无痕 已提交
1310
		t.FailNow()
雨爱无痕 已提交
1311
		return
雨爱无痕 已提交
1312
	}
雨爱无痕 已提交
1313 1314
	page.WaitForSelector("#filterModal>>.list-item-title:has-text(\"企业网站第一期测试任务\")")
	err = page.Click("#filterModal>>.list-item-title:has-text(\"企业网站第一期测试任务\")")
雨爱无痕 已提交
1315
	page.WaitForTimeout(200)
雨爱无痕 已提交
1316
	if err != nil {
雨爱无痕 已提交
1317
		t.Errorf("The Click test_task filter fail: %v", err)
雨爱无痕 已提交
1318
		t.FailNow()
雨爱无痕 已提交
1319
		return
雨爱无痕 已提交
1320
	}
雨爱无痕 已提交
1321
	page.WaitForSelector(".toolbar:has-text(\"按测试单\")")
雨爱无痕 已提交
1322
	err = page.Click(".tree-node-title:has-text(\"单元测试工作目录\")")
雨爱无痕 已提交
1323 1324 1325 1326
	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)
雨爱无痕 已提交
1327
		t.FailNow()
雨爱无痕 已提交
1328
		return
雨爱无痕 已提交
1329 1330
	}
}
雨爱无痕 已提交
1331 1332 1333 1334 1335 1336 1337
func Collapse(t provider.T) {
	t.ID("5472")
	t.AddParentSuite("管理禅道站点下工作目录")
	pw, err := playwright.Run()
	if err != nil {
		t.Error(err)
		t.FailNow()
雨爱无痕 已提交
1338
		return
雨爱无痕 已提交
1339
	}
雨爱无痕 已提交
1340
	headless := true
雨爱无痕 已提交
1341 1342 1343 1344 1345
	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()
雨爱无痕 已提交
1346
		return
雨爱无痕 已提交
1347 1348 1349 1350 1351
	}
	page, err := workspaceBrowser.NewPage()
	if err != nil {
		t.Errorf("Create the new page fail: %v", err)
		t.FailNow()
雨爱无痕 已提交
1352
		return
雨爱无痕 已提交
1353
	}
雨爱无痕 已提交
1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365
	defer func() {
		if err = workspaceBrowser.Close(); err != nil {
			t.Errorf("The workspaceBrowser cannot be closed: %v", err)
			t.FailNow()
			return
		}
		if err = pw.Stop(); err != nil {
			t.Errorf("The playwright cannot be stopped: %v", err)
			t.FailNow()
			return
		}
	}()
雨爱无痕 已提交
1366 1367 1368 1369
	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()
雨爱无痕 已提交
1370
		return
雨爱无痕 已提交
1371 1372 1373 1374 1375 1376
	}

	locator, err := page.Locator("#siteMenuToggle")
	if err != nil {
		t.Errorf("The siteMenuToggle is missing: %v", err)
		t.FailNow()
雨爱无痕 已提交
1377
		return
雨爱无痕 已提交
1378 1379 1380 1381 1382
	}
	err = locator.Click()
	if err != nil {
		t.Errorf("The Click is fail: %v", err)
		t.FailNow()
雨爱无痕 已提交
1383
		return
雨爱无痕 已提交
1384 1385 1386 1387 1388
	}
	_, err = page.WaitForSelector("#navbar .list-item")
	if err != nil {
		t.Errorf("Wait for workspace list nav fail: %v", err)
		t.FailNow()
雨爱无痕 已提交
1389
		return
雨爱无痕 已提交
1390 1391 1392 1393 1394
	}
	err = page.Click(".list-item-title>>text=单元测试站点")
	if err != nil {
		t.Errorf("The Click workspace nav fail: %v", err)
		t.FailNow()
雨爱无痕 已提交
1395
		return
雨爱无痕 已提交
1396 1397 1398 1399 1400
	}
	err = page.Click(`#leftPane>>.toolbar>>[title="展开"]`)
	if err != nil {
		t.Errorf("Click expand workspace btn fail: %v", err)
		t.FailNow()
雨爱无痕 已提交
1401
		return
雨爱无痕 已提交
1402 1403 1404 1405 1406 1407 1408
	}
	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()
雨爱无痕 已提交
1409
		return
雨爱无痕 已提交
1410 1411 1412 1413 1414
	}
	err = page.Click(`#leftPane>>.toolbar>>[title="折叠"]`)
	if err != nil {
		t.Errorf("Click Collapse workspace btn fail: %v", err)
		t.FailNow()
雨爱无痕 已提交
1415
		return
雨爱无痕 已提交
1416 1417 1418 1419 1420 1421 1422
	}
	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()
雨爱无痕 已提交
1423
		return
雨爱无痕 已提交
1424 1425
	}
}
雨爱无痕 已提交
1426
func TestUiWorkspace(t *testing.T) {
雨爱无痕 已提交
1427
	runner.Run(t, "客户端-同步到禅道", SyncToZentao)
雨爱无痕 已提交
1428 1429 1430 1431 1432 1433 1434 1435 1436
	runner.Run(t, "客户端-从禅道同步部分用例", SyncTwoCaseFromZentao)
	runner.Run(t, "客户端-从禅道同步", SyncFromZentao)
	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)
雨爱无痕 已提交
1437
	runner.Run(t, "客户端-显示展开折叠脚本树状结构", Collapse)
雨爱无痕 已提交
1438
	runner.Run(t, "客户端-按模块展示禅道用例脚本", ByModule)
雨爱无痕 已提交
1439 1440
	runner.Run(t, "客户端-删除禅道工作目录", DeleteWorkspace)
	runner.Run(t, "客户端-创建禅道工作目录", CreateWorkspace)
雨爱无痕 已提交
1441
}