scoutui 2.0.5.2.1.pre → 2.0.5.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (49) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +6 -2
  3. data/README.md +0 -7
  4. data/examples/ex1/phantom.chrome.json +4 -0
  5. data/examples/ex1/run.sh +85 -0
  6. data/examples/ex1/simple.yml +13 -0
  7. data/examples/ex1/win10.chromebeta.json +6 -0
  8. data/lib/scoutui/base/q_har_mgr.rb +63 -0
  9. data/lib/scoutui/base/test_data.rb +0 -6
  10. data/lib/scoutui/commands/click_object.rb +1 -7
  11. data/lib/scoutui/version.rb +1 -1
  12. data/scoutui.gemspec +3 -4
  13. metadata +17 -62
  14. data/bin/scoutui_driver +0 -1
  15. data/examples/benchmark/ex.rb +0 -16
  16. data/examples/capabilities/win10.chrome46.json +0 -6
  17. data/examples/carmax/appmodel/search_results.json +0 -27
  18. data/examples/carmax/commands/commands.yml +0 -63
  19. data/examples/cmdshell/commands/hello.yml +0 -22
  20. data/examples/converters/jsonupdate.rb +0 -31
  21. data/examples/ex2/appmodel/common.json +0 -51
  22. data/examples/ex2/appmodel/page_model.json +0 -106
  23. data/examples/ex2/appmodel/register.model.json +0 -42
  24. data/examples/ex2/commands/commands.basic.appmodel.yml +0 -8
  25. data/examples/ex2/commands/commands.yml +0 -115
  26. data/examples/ex2/commands/ex1.yml +0 -7
  27. data/examples/ex2/commands/ex1c.yml +0 -8
  28. data/examples/ex2/commands/ex1d.yml +0 -22
  29. data/examples/ex2/commands/ex2.hover.yml +0 -43
  30. data/examples/ex2/commands/ex2.yml +0 -24
  31. data/examples/ex2/data.json +0 -6
  32. data/examples/ex2/test-configs/test.config.basic.json +0 -12
  33. data/examples/ex2/test-configs/test.config.json +0 -31
  34. data/examples/ex2/tests/run-test.sh +0 -125
  35. data/examples/ex2/tests/test-basic-appmodel.sh +0 -14
  36. data/examples/ex2/tests/test-example.sh +0 -39
  37. data/examples/ex2/tests/test-example1a.sh +0 -16
  38. data/examples/ex2/tests/test-example1b.sh +0 -13
  39. data/examples/ex2/tests/test-example1c.sh +0 -15
  40. data/examples/ex2/tests/test-example1d.sh +0 -15
  41. data/examples/ex2/tests/test-example2.forms.eyes.sh +0 -40
  42. data/examples/ex2/tests/test-example2.hover.eyes.sh +0 -40
  43. data/examples/ex2/tests/test-example2.hover.sh +0 -26
  44. data/examples/ex2/tests/test-example2.sh +0 -43
  45. data/examples/ex2/tests/test-example3.sauce.sh +0 -77
  46. data/examples/ex2/tests/test-example3.sh +0 -41
  47. data/examples/headless/run.sh +0 -15
  48. data/examples/http/sendreq.rb +0 -29
  49. data/examples/js.rb +0 -48
@@ -1,6 +0,0 @@
1
- {
2
- "platform": "Windows 10",
3
- "browser": "chrome",
4
- "version": "46.0",
5
- "screenResolution": "1024x768"
6
- }
@@ -1,27 +0,0 @@
1
- {
2
-
3
-
4
- "search_results": {
5
-
6
-
7
- "results": {
8
-
9
- "header": {
10
- "reqid": "REQ-HEADER",
11
- "locator": "//span[text()='Applied filters']",
12
- "visible_when": "title(Search Results)"
13
- }
14
-
15
-
16
- }
17
-
18
-
19
-
20
- }
21
-
22
-
23
-
24
-
25
-
26
-
27
- }
@@ -1,63 +0,0 @@
1
- page:
2
- name: Home
3
- description: Navigate to a specified URL and wait until the expected elements are present
4
- url: http://www.carmax.com
5
- ---
6
- page:
7
- name: Highlight Example
8
- action: highlight(page(main).get(nav).get(findYourCar))
9
- ---
10
- page:
11
- timeout: 5
12
- name: Click Find Your Car
13
- action: click(page(main).get(nav).get(findYourCar))
14
- expected:
15
- wait1: //header//*[text()='Pricex']
16
- ---
17
- page:
18
- name: Basic Search
19
- timeout: 5
20
- action: click(page(main).get(nav).get(basic_search))
21
- expected:
22
- wait: page(basic_search).get(free_text)
23
- assertions: [
24
- elvis: {
25
- "locator": "//button[@text()='Go']",
26
- "visible_when": "visible(page(basic_search).get(free_text))"
27
- },
28
- better_assert: {
29
- "locator": "page(basic_search)"
30
- }
31
- ]
32
- ---
33
- page:
34
- name: Popup
35
- timeout: 5
36
- execute_when: visible(//area[@alt='no'])
37
- action: click(//area[@alt='no'])
38
- ---
39
- page:
40
- name: Enter Porsche
41
- action: type(page(basic_search).get(free_text), Porsche 911)
42
- expected:
43
- wait: //a[contains(@href, 'Porsche%20911')]
44
- ---
45
- page:
46
- action: highlight(//a[contains(@href, 'Porsche%20911')])
47
- ---
48
- page:
49
- action: mouseover(//a[contains(@href, 'Porsche%20911')])
50
- ---
51
- page:
52
- action: click(page(basic_search).get(go))
53
- assertions: [
54
- assert1: {
55
- "locator": "page(search_results).get(results)"
56
- }
57
- ]
58
- ---
59
- page:
60
- name: Pause after Nav.
61
- action: pause
62
- skipit: false
63
-
@@ -1,22 +0,0 @@
1
- page:
2
- name: Assign my vars
3
- action: assignments
4
- vars:
5
- - assign(MyEntity, ScoutUI)
6
- ---
7
- page:
8
- name: Simple Cmd
9
- id: MultiLs
10
- action: defineCommand
11
- commands: sed -e 's/domain/${MyEntity}/g' /tmp/userlist-v2.txt > /tmp/mydata.txt
12
- ---
13
- page:
14
- name: Run Multi
15
- action: executeCommands
16
- commands:
17
- - id: MultiLs
18
- ---
19
- page:
20
- name: Pause afger MultiLs
21
- action: pause
22
- skip: false
@@ -1,31 +0,0 @@
1
-
2
-
3
- def iterate(h)
4
- h.each do |k, v|
5
- if v.is_a?(Hash) || v.is_a?(Array)
6
- iterate(v)
7
- else
8
- puts("k is #{k}, value is #{v}")
9
- if v.match(/peter/i)
10
- h[k]='Elvis'
11
- end
12
- end
13
- end
14
- end
15
-
16
-
17
- h={
18
- 'person': {
19
- 'first': 'Peter',
20
- 'last': 'Kim',
21
- 'address': {
22
- 'city': 'Manhattan peter',
23
- 'state': 'New York'
24
- }
25
- }
26
- }
27
-
28
-
29
- iterate(h)
30
-
31
- puts "h => #{h}"
@@ -1,51 +0,0 @@
1
- {
2
-
3
- "basic_nav": {
4
-
5
- "find_cars_for_sale": {
6
- "locator": "//*[@id='header']//a[text()='Find Cars for Sale']",
7
- "visible_when": "always"
8
- },
9
-
10
- "sell_us_your_car": {
11
- "locator": "//*[@id='header']//a[text()='Sell Us Your Car']",
12
- "visible_when": "title(Used Cars for Sale.*)"
13
- },
14
-
15
- "research": {
16
- "locator": "//*[@id='header']//a[text()='Research']",
17
- "when_hovered": [
18
- { "RSRCH": [
19
- "visible(//*[@id='header']//a[text()='Ratings and Reviews'])",
20
- "visible(//*[@id='header']//a[text()='Payment Calculators'])",
21
- "visible(page(submenu3).get(fuel_econ))"
22
- ]
23
- }
24
- ]
25
- }
26
-
27
- },
28
-
29
- "find_cars_for_sale_sm": {
30
- "description": "Example of observer-like pattern, where an element registers itself to another elements action.",
31
- "locator": "//*[@id='header']//a[text()='Nationwide Transfers']",
32
- "visible_when": "mouseover(page(basic_nav).get(find_cars_for_sale))"
33
- },
34
-
35
- "submenu2": {
36
-
37
- "faq": {
38
- "locator": "//*[@id='header']//a[text()='FAQ']",
39
- "visible_when": "mouseover(page(basic_nav).get(sell_us_your_car))"
40
- }
41
-
42
- },
43
-
44
- "submenu3": {
45
- "fuel_econ": {
46
- "locator": "//*[@id='header']//a[text()='Payment Calculators']"
47
- }
48
- }
49
-
50
-
51
- }
@@ -1,106 +0,0 @@
1
- {
2
- "home": {
3
- "cars4sale": {
4
- "locator": "//a[text()='Find Cars for Sale']",
5
- "visible_when": "always",
6
- "reqid": "REQ-Home"
7
- },
8
- "whyCarMax": {
9
- "locator": "//*[@id='header']//a[text()='Why CarMax']",
10
- "visible_when": "text(page(home).get(cars4sale))=Find Cars for Sale",
11
- "reqid": "REQ-Home"
12
- },
13
-
14
- "sign_in": {
15
- "locator": "//input[text()='Sign in']",
16
- "visible_when": "title(/Carmax.*online/)",
17
- "reqid": "REQ-Home"
18
- },
19
-
20
- "register": {
21
- "locator": "//*[@id='register']",
22
- "reqid": "REQ-register",
23
-
24
-
25
- "when_clicked": [
26
- { "req-XYZ": "page(register_pg).get(firstname)" },
27
- { "req-XYZ": "visible(page(register_pg).get(firstname))"},
28
- {
29
- "REGIS-002": [
30
- "title(Register for MyCarMax)",
31
- "visible(css=#signInLink)"
32
- ]
33
- }
34
- ],
35
-
36
-
37
- "visible_when": [
38
- { "visible_when": "visible(page(home).get(sign_in))=true"},
39
- { "visible_when": "visible(page(home).get(cars4sale))=true"},
40
- { "visible_when": "visible(page(home).get(sign_in))=false"},
41
- { "visible_when": "title(Car[mM]ax.*online)"}
42
- ]
43
- },
44
-
45
- "mycarmax": {
46
- "locator": "//*[@id='mycarmax']",
47
- "visible_when": "title(CarMax - Browse used cars and new cars online)",
48
- "reqid": "REQ-Home"
49
- },
50
-
51
- "logoff": {
52
- "locator": "//*[text()='Log off']",
53
- "visible_when": "never",
54
- "reqid": "REQ-Home"
55
- }
56
- },
57
-
58
-
59
- "register_pg": {
60
- "firstname": {
61
- "locator": "css=input#FirstName",
62
- "visible_when": "title(Register for MyCarMax)"
63
- },
64
-
65
- "lastname": {
66
- "locator": "//input[@id='LastName']",
67
- "visible_when": "always"
68
- }
69
- },
70
-
71
- "research": {
72
-
73
- "fuel_economy": {
74
- "locator": ""
75
- }
76
-
77
- },
78
-
79
- "main_nav": {
80
- "search_input": {
81
- "locator": "//input[@id='search']",
82
- "visible_when": "always"
83
- },
84
- "search_btn": {
85
- "locator": "//a[@id='search-btn']",
86
- "visible_when": "always"
87
- }
88
- },
89
-
90
- "find_cars_by": {
91
- "make": {
92
- "locator": "//*[@id='bantab0']/a[contains(text(), 'Make')]",
93
- "visible_when": "always"
94
- },
95
-
96
- "price_list": {
97
- "locator": "//*[@id='minPriceFilter']",
98
- "visible_when": "text(//*[@id='minPriceFilter'])=$0"
99
- }
100
- },
101
-
102
- "search": {
103
- "header": "//title"
104
- }
105
- }
106
-
@@ -1,42 +0,0 @@
1
- {
2
-
3
- "register": {
4
-
5
- "error_msgs": {
6
-
7
- "email": {
8
- "reqid": "REQ:Email - is required",
9
- "locator": "//*[@class='field-validation-error' and text()='Email is required.']",
10
- "visible_when": "text(page(register).get(form).get(email))="
11
-
12
- }
13
- },
14
-
15
- "form": {
16
- "firstname": {
17
- "locator": "//input[@id='FirstName']",
18
- "visible_when": "always"
19
- },
20
-
21
- "lastname": {
22
- "locator": "//input[@id='LastName']",
23
- "visible_when": "always"
24
- },
25
-
26
- "email": {
27
- "locator": "//input[@id='EmailAddress']",
28
- "visible_when": "always"
29
- },
30
-
31
- "register_btn": {
32
- "locator": "//input[@id='next']",
33
- "visible_when": "visible(page(register).get(form).get(firstname))",
34
- "action_object": true
35
- }
36
-
37
- }
38
-
39
- }
40
-
41
-
42
- }
@@ -1,8 +0,0 @@
1
- page:
2
- skip: false
3
- name: Home
4
- description: Navigate to a specified URL and wait until the expected elements are present
5
- url: http://www.carmax.com
6
- expected:
7
- wait: page(main_nav).get(search_input)
8
- wait2: page(main_nav).get(search_btn)
@@ -1,115 +0,0 @@
1
- page:
2
- reqid: Beta Page Loaded
3
- execute_when: url(beta.carmax.com)
4
- action: stop
5
- ---
6
- page:
7
- reqid: Initial Load
8
- url: http://www.carmax.com
9
- expected:
10
-
11
- ---
12
- page:
13
- reqid: Survey
14
- description: Survey popup answered by Yes
15
- execute_when: visible(//area[@alt='no'])
16
- action: click(//area[@alt='no'])
17
- ---
18
- page:
19
- name: Home
20
- description: Navigate to a specified URL and wait until the expected elements are present
21
- url: http://www.carmax.com
22
- expected:
23
- wait: page(home).get(cars4sale)
24
- wait2: page(home).get(whyCarMax)
25
- wait3: page(find_cars_by).get(make)
26
- assertions: [
27
- assert1: {
28
- "locator": "page(find_cars_by).get(make)",
29
- "visible_when": "always",
30
- "reqid": "REQ-HOME"
31
- },
32
- assert2: {
33
- "locator": "page(home).get(whyCarMax)",
34
- "visible_when": "always"
35
- },
36
- assert3: {
37
- "locator": "page(home)",
38
- "reqid": "REQ-HOME2"
39
- }
40
- ]
41
- ---
42
- page:
43
- name: Click on Make
44
- action: click(page(find_cars_by).get(make))
45
- expected:
46
- wait: //div[contains(@class, 'open')]//a[text()='Porsche']
47
- ---
48
- page:
49
- name: Select Porsche
50
- action: click(//div[contains(@class, 'open')]//a[text()='${MyMake}'])
51
- expected:
52
- wait: //*[@id='Model']//*[text()='${MyMake}']
53
- assertions: [
54
- assert1: {
55
- "locator": "page(find_cars_by).get(price_list)",
56
-
57
- }
58
- ]
59
- ---
60
- page:
61
- name: Select the within Mileage List
62
- action: click(//div[@id='selectedDistanceDesc'])
63
- expected:
64
- wait: //*[@id='distance']//a[text()='any distance']
65
- ---
66
- page:
67
- name: Select Any Distance
68
- action: click(//*[@id='distance']//a[text()='any distance'])
69
- ---
70
- page:
71
- name: Enter Zipcode
72
- action: type!(//*[@id='zip'], 94030)
73
- ---
74
- page:
75
- name: Update Distance
76
- action: click(//*[@id='distanceSubmit'])
77
- expected:
78
- wait: //*[@id='distance']//a[text()='any distance']
79
- wait2: //*[@id='zip' and @value='94030']
80
- ---
81
- page:
82
- action: pause
83
- skip: true
84
- ---
85
- page:
86
- name: Mouseover View Tickets
87
- action: mouseover(page(home).get(whyCarMax))
88
- snapit: true
89
- ---
90
- page:
91
- name: Click - specified by Alias
92
- action: click(${WhyCarMax})
93
- snapit: true
94
- ---
95
- page:
96
- skip: true
97
- action: pause
98
- ---
99
- page:
100
- skip: false
101
- name: Click on Input
102
- action: click(page(main_nav).get(search_input))
103
- snapit: true
104
- ---
105
- page:
106
- action: type(page(main_nav).get(search_input), ${Search_Me})
107
- ---
108
- page:
109
- action: pause
110
- skip: true
111
- ---
112
- page:
113
- action: click(page(main_nav).get(search_btn))
114
- expected:
115
- wait: //input[@id='zip']