testcentricity_web 4.1.9 → 4.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (115) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +96 -1
  3. data/README.md +88 -48
  4. data/lib/testcentricity_web/browser_helper.rb +2 -1
  5. data/lib/testcentricity_web/data_objects/environment.rb +0 -1
  6. data/lib/testcentricity_web/version.rb +1 -1
  7. data/lib/testcentricity_web/web_core/page_objects_helper.rb +40 -3
  8. data/lib/testcentricity_web/web_core/webdriver_helper.rb +89 -80
  9. data/lib/testcentricity_web/web_elements/media.rb +108 -0
  10. data/lib/testcentricity_web/web_elements/textfield.rb +28 -0
  11. data/lib/testcentricity_web/web_elements/ui_elements_helper.rb +39 -1
  12. metadata +37 -181
  13. data/.gitignore +0 -39
  14. data/.idea/.name +0 -1
  15. data/.idea/encodings.xml +0 -6
  16. data/.idea/misc.xml +0 -4
  17. data/.idea/modules.xml +0 -8
  18. data/.idea/vcs.xml +0 -7
  19. data/.rspec +0 -4
  20. data/.rubocop.yml +0 -38
  21. data/.ruby-version +0 -1
  22. data/.simplecov +0 -9
  23. data/CODE_OF_CONDUCT.md +0 -13
  24. data/Gemfile +0 -6
  25. data/Rakefile +0 -115
  26. data/config/cucumber.yml +0 -171
  27. data/config/locales/en-US.yml +0 -56
  28. data/config/test_data/LOCAL_data.json +0 -15
  29. data/config/test_data/LOCAL_data.xls +0 -0
  30. data/config/test_data/LOCAL_data.yml +0 -11
  31. data/config/test_data/data.json +0 -25
  32. data/config/test_data/data.xls +0 -0
  33. data/config/test_data/data.yml +0 -20
  34. data/docker-compose.yml +0 -48
  35. data/features/basic_form_page_css.feature +0 -54
  36. data/features/basic_form_page_xpath.feature +0 -26
  37. data/features/custom_controls.feature +0 -29
  38. data/features/media_players.feature +0 -67
  39. data/features/step_definitions/generic_steps.rb.rb +0 -124
  40. data/features/step_definitions/media_steps.rb +0 -30
  41. data/features/support/data/form_data.rb +0 -43
  42. data/features/support/env.rb +0 -51
  43. data/features/support/hooks.rb +0 -270
  44. data/features/support/pages/base_test_page.rb +0 -22
  45. data/features/support/pages/basic_css_form_page.rb +0 -53
  46. data/features/support/pages/basic_form_page.rb +0 -429
  47. data/features/support/pages/basic_xpath_form_page.rb +0 -54
  48. data/features/support/pages/custom_controls_page.rb +0 -263
  49. data/features/support/pages/indexed_sections_page.rb +0 -57
  50. data/features/support/pages/media_test_page.rb +0 -207
  51. data/features/support/sections/header_nav.rb +0 -48
  52. data/features/support/sections/product_card.rb +0 -39
  53. data/features/support/world_data.rb +0 -12
  54. data/features/support/world_pages.rb +0 -18
  55. data/reports/.keep +0 -1
  56. data/spec/fixtures/page_object.rb +0 -22
  57. data/spec/fixtures/section_object.rb +0 -21
  58. data/spec/spec_helper.rb +0 -31
  59. data/spec/testcentricity_web/browser_spec.rb +0 -41
  60. data/spec/testcentricity_web/elements/audio_spec.rb +0 -68
  61. data/spec/testcentricity_web/elements/button_spec.rb +0 -18
  62. data/spec/testcentricity_web/elements/checkbox_spec.rb +0 -33
  63. data/spec/testcentricity_web/elements/file_field_spec.rb +0 -13
  64. data/spec/testcentricity_web/elements/image_spec.rb +0 -33
  65. data/spec/testcentricity_web/elements/label_spec.rb +0 -18
  66. data/spec/testcentricity_web/elements/link_spec.rb +0 -23
  67. data/spec/testcentricity_web/elements/list_spec.rb +0 -13
  68. data/spec/testcentricity_web/elements/radio_spec.rb +0 -28
  69. data/spec/testcentricity_web/elements/ui_element_spec.rb +0 -125
  70. data/spec/testcentricity_web/elements/video_spec.rb +0 -68
  71. data/spec/testcentricity_web/helper_specs/object_helpers_spec.rb +0 -39
  72. data/spec/testcentricity_web/helper_specs/string_helpers_spec.rb +0 -49
  73. data/spec/testcentricity_web/page_object_spec.rb +0 -90
  74. data/spec/testcentricity_web/section_object_spec.rb +0 -72
  75. data/spec/testcentricity_web/version_spec.rb +0 -7
  76. data/spec/testcentricity_web/webdriver_connect/grid_webdriver_spec.rb +0 -72
  77. data/spec/testcentricity_web/webdriver_connect/local_webdriver_spec.rb +0 -86
  78. data/spec/testcentricity_web/webdriver_connect/mobile_webdriver_spec.rb +0 -65
  79. data/test_site/basic_test_page.html +0 -290
  80. data/test_site/chosen-sprite.png +0 -0
  81. data/test_site/chosen-sprite@2x.png +0 -0
  82. data/test_site/chosen.css +0 -496
  83. data/test_site/chosen.jquery.js +0 -1359
  84. data/test_site/chosen.jquery.min.js +0 -3
  85. data/test_site/chosen.min.css +0 -11
  86. data/test_site/chosen.proto.js +0 -1399
  87. data/test_site/chosen.proto.min.js +0 -3
  88. data/test_site/composer.json +0 -36
  89. data/test_site/custom_controls_page.html +0 -629
  90. data/test_site/docsupport/chosen.png +0 -0
  91. data/test_site/docsupport/init.js +0 -11
  92. data/test_site/docsupport/init.proto.js +0 -16
  93. data/test_site/docsupport/jquery-1.12.4.min.js +0 -5
  94. data/test_site/docsupport/jquery-3.2.1.min.js +0 -4
  95. data/test_site/docsupport/oss-credit.png +0 -0
  96. data/test_site/docsupport/prism.css +0 -108
  97. data/test_site/docsupport/prism.js +0 -9
  98. data/test_site/docsupport/prototype-1.7.0.0.js +0 -6082
  99. data/test_site/docsupport/style.css +0 -219
  100. data/test_site/images/Blouse_Black.jpg +0 -0
  101. data/test_site/images/Granny.jpg +0 -0
  102. data/test_site/images/Printed_Dress.jpg +0 -0
  103. data/test_site/images/T-shirt.jpg +0 -0
  104. data/test_site/images/Wilder.jpg +0 -0
  105. data/test_site/images/You_Betcha.jpg +0 -0
  106. data/test_site/images/jeans3.jpg +0 -0
  107. data/test_site/indexed_sections_page.html +0 -215
  108. data/test_site/media/MIB2-subtitles-pt-BR.vtt +0 -49
  109. data/test_site/media/MIB2.mp4 +0 -0
  110. data/test_site/media/MP4_small.mp4 +0 -0
  111. data/test_site/media/MPS_sample.mp3 +0 -0
  112. data/test_site/media/bbc_scotland_report.mp3 +0 -0
  113. data/test_site/media/count_and_bars.mp4 +0 -0
  114. data/test_site/media_page.html +0 -86
  115. data/testcentricity_web.gemspec +0 -57
@@ -1,90 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- describe TestCentricity::PageObject, required: true do
4
- before :context do
5
- @test_page = TestPage.new
6
- end
7
-
8
- context 'page object traits' do
9
- it 'returns page name' do
10
- expect(@test_page.page_name).to eq('Basic Test Page')
11
- end
12
-
13
- it 'returns page url' do
14
- expect(@test_page.page_url).to eq('/basic_test_page.html')
15
- end
16
-
17
- it 'returns page locator' do
18
- expect(@test_page.page_locator).to eq('form#HTMLFormElements')
19
- end
20
-
21
- it 'determines if page is secure' do
22
- allow(@test_page).to receive(:secure?).and_return(false)
23
- expect(@test_page.secure?).to eq(false)
24
- end
25
-
26
- it 'should display the title of the page' do
27
- allow(@test_page).to receive(:title).and_return('I am the title of a page')
28
- expect(@test_page.title).to eql 'I am the title of a page'
29
- end
30
-
31
- it 'determines if page is secure' do
32
- allow(@test_page).to receive(:secure?).and_return(false)
33
- expect(@test_page.secure?).to eq(false)
34
- end
35
-
36
- it 'responds to open_portal' do
37
- expect(@test_page).to respond_to(:open_portal)
38
- end
39
-
40
- it 'responds to load_page' do
41
- expect(@test_page).to respond_to(:load_page)
42
- end
43
-
44
- it 'responds to verify_page_exists' do
45
- expect(@test_page).to respond_to(:verify_page_exists)
46
- end
47
-
48
- it 'responds to exists?' do
49
- expect(@test_page).to respond_to(:exists?)
50
- end
51
- end
52
-
53
- context 'page object with UI elements' do
54
- it 'responds to element' do
55
- expect(@test_page).to respond_to(:element1)
56
- end
57
-
58
- it 'responds to button' do
59
- expect(@test_page).to respond_to(:button1)
60
- end
61
-
62
- it 'responds to textfield' do
63
- expect(@test_page).to respond_to(:field1)
64
- end
65
-
66
- it 'responds to link' do
67
- expect(@test_page).to respond_to(:link1)
68
- end
69
-
70
- it 'responds to range' do
71
- expect(@test_page).to respond_to(:range1)
72
- end
73
-
74
- it 'responds to image' do
75
- expect(@test_page).to respond_to(:image1)
76
- end
77
-
78
- it 'responds to radio' do
79
- expect(@test_page).to respond_to(:radio1)
80
- end
81
-
82
- it 'responds to checkbox' do
83
- expect(@test_page).to respond_to(:check1)
84
- end
85
-
86
- it 'responds to section' do
87
- expect(@test_page).to respond_to(:section1)
88
- end
89
- end
90
- end
@@ -1,72 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- describe TestCentricity::PageSection, required: true do
4
- before :context do
5
- @test_page = TestPage.new
6
- @test_section = @test_page.section1
7
- end
8
-
9
- context 'section object traits' do
10
- it 'returns section name' do
11
- expect(@test_section.section_name).to eq('Basic Test Section')
12
- end
13
-
14
- it 'returns section locator' do
15
- expect(@test_section.get_locator).to eq('div#section')
16
- end
17
-
18
- it 'returns class' do
19
- expect(@test_section.class).to eql TestSection
20
- end
21
-
22
- it 'returns css locator type' do
23
- expect(@test_section.get_locator_type).to eql :css
24
- end
25
-
26
- it 'registers with type section' do
27
- expect(@test_section.get_object_type).to eql :section
28
- end
29
-
30
- it 'returns parent list object' do
31
- expect(@test_section.get_parent_list).to eql nil
32
- end
33
- end
34
-
35
- context 'section object with UI elements' do
36
- it 'responds to element' do
37
- expect(@test_section).to respond_to(:element1)
38
- end
39
-
40
- it 'responds to button' do
41
- expect(@test_section).to respond_to(:button1)
42
- end
43
-
44
- it 'responds to textfield' do
45
- expect(@test_section).to respond_to(:field1)
46
- end
47
-
48
- it 'responds to link' do
49
- expect(@test_section).to respond_to(:link1)
50
- end
51
-
52
- it 'responds to range' do
53
- expect(@test_section).to respond_to(:range1)
54
- end
55
-
56
- it 'responds to image' do
57
- expect(@test_section).to respond_to(:image1)
58
- end
59
-
60
- it 'responds to radio' do
61
- expect(@test_section).to respond_to(:radio1)
62
- end
63
-
64
- it 'responds to checkbox' do
65
- expect(@test_section).to respond_to(:check1)
66
- end
67
-
68
- it 'responds to section' do
69
- expect(@test_section).to respond_to(:section2)
70
- end
71
- end
72
- end
@@ -1,7 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- describe 'TestCentricityWeb::VERSION', required: true do
4
- subject { TestCentricityWeb::VERSION }
5
-
6
- it { is_expected.to be_truthy }
7
- end
@@ -1,72 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- describe TestCentricity::WebDriverConnect, grid: true do
4
- before(:context) do
5
- # instantiate remote test environment
6
- @environs ||= EnvironData
7
- @environs.find_environ('REMOTE', :yaml)
8
- ENV['SELENIUM'] = 'remote'
9
- endpoint = 'http://localhost:4444/wd/hub'
10
- ENV['REMOTE_ENDPOINT'] = endpoint
11
- # wait for Dockerized Selenium grid to be running
12
- 20.downto(0) do |interval|
13
- begin
14
- response = HTTParty.get("#{endpoint}/status")
15
- break if response.body.include?('Selenium Grid ready')
16
- rescue
17
- if interval == 0
18
- raise 'Selenium Grid is not running.'
19
- else
20
- sleep(1)
21
- end
22
- end
23
- end
24
- end
25
-
26
- context 'grid web browser instances' do
27
- it 'connects to a grid hosted Firefox browser' do
28
- ENV['WEB_BROWSER'] = 'firefox'
29
- WebDriverConnect.initialize_web_driver
30
- verify_grid_browser(browser = :firefox, platform = :desktop)
31
- end
32
-
33
- it 'connects to a grid hosted Chrome browser' do
34
- ENV['WEB_BROWSER'] = 'chrome'
35
- WebDriverConnect.initialize_web_driver
36
- Browsers.suppress_js_leave_page_modal
37
- verify_grid_browser(browser = :chrome, platform = :desktop)
38
- end
39
-
40
- it 'connects to a grid hosted Edge browser' do
41
- ENV['WEB_BROWSER'] = 'edge'
42
- WebDriverConnect.initialize_web_driver
43
- Browsers.suppress_js_alerts
44
- verify_grid_browser(browser = :edge, platform = :desktop)
45
- end
46
-
47
- it 'connects to a grid hosted emulated mobile web browser' do
48
- ENV['WEB_BROWSER'] = 'ipad_pro_12_9'
49
- ENV['HOST_BROWSER'] = 'chrome'
50
- ENV['ORIENTATION'] = 'portrait'
51
- WebDriverConnect.initialize_web_driver
52
- Browsers.set_device_orientation('landscape')
53
- verify_grid_browser(browser = :ipad_pro_12_9, platform = :mobile)
54
- end
55
- end
56
-
57
- after(:each) do
58
- $server.stop if Environ.driver == :appium && $server.running?
59
- Capybara.current_session.quit
60
- Environ.session_state = :quit
61
- end
62
-
63
- def verify_grid_browser(browser, platform)
64
- expect(Environ.browser).to eq(browser)
65
- expect(Environ.platform).to eq(platform)
66
- expect(Environ.headless).to eq(false)
67
- expect(Environ.session_state).to eq(:running)
68
- expect(Environ.driver).to eq(:webdriver)
69
- expect(Environ.device).to eq(:web)
70
- expect(Environ.grid).to eq(:selenium_grid)
71
- end
72
- end
@@ -1,86 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- describe TestCentricity::WebDriverConnect, required: true do
4
- before(:context) do
5
- # instantiate local test environment
6
- @environs ||= EnvironData
7
- @environs.find_environ('LOCAL', :yaml)
8
- ENV['SELENIUM'] = ''
9
- end
10
-
11
- context 'local web browser instances' do
12
- it 'connects to a local Firefox browser' do
13
- ENV['WEB_BROWSER'] = 'firefox'
14
- WebDriverConnect.initialize_web_driver
15
- verify_local_browser(browser = :firefox, platform = :desktop, headless = false)
16
- end
17
-
18
- it 'connects to a local Safari browser' do
19
- ENV['WEB_BROWSER'] = 'safari'
20
- WebDriverConnect.initialize_web_driver
21
- verify_local_browser(browser = :safari, platform = :desktop, headless = false)
22
- end
23
-
24
- it 'connects to a local Chrome browser' do
25
- ENV['WEB_BROWSER'] = 'chrome'
26
- WebDriverConnect.initialize_web_driver
27
- Browsers.suppress_js_leave_page_modal
28
- verify_local_browser(browser = :chrome, platform = :desktop, headless = false)
29
- end
30
-
31
- it 'connects to a local Edge browser' do
32
- ENV['WEB_BROWSER'] = 'edge'
33
- WebDriverConnect.initialize_web_driver
34
- Browsers.suppress_js_alerts
35
- verify_local_browser(browser = :edge, platform = :desktop, headless = false)
36
- end
37
-
38
- it 'connects to a local emulated mobile web browser' do
39
- ENV['WEB_BROWSER'] = 'ipad_pro_12_9'
40
- ENV['HOST_BROWSER'] = 'chrome'
41
- ENV['ORIENTATION'] = 'portrait'
42
- WebDriverConnect.initialize_web_driver
43
- Browsers.set_device_orientation('landscape')
44
- verify_local_browser(browser = :ipad_pro_12_9, platform = :mobile, headless = false)
45
- expect(Environ.browser_size).to eq([1366, 1024])
46
- end
47
- end
48
-
49
- context 'local headless browser instances' do
50
- it 'connects to a local headless Chrome browser' do
51
- ENV['WEB_BROWSER'] = 'chrome_headless'
52
- WebDriverConnect.initialize_web_driver
53
- Browsers.maximize_browser
54
- verify_local_browser(browser = :chrome_headless, platform = :desktop, headless = true)
55
- end
56
-
57
- it 'connects to a local headless Edge browser' do
58
- ENV['WEB_BROWSER'] = 'edge_headless'
59
- WebDriverConnect.initialize_web_driver
60
- Browsers.refresh_browser
61
- verify_local_browser(browser = :edge_headless, platform = :desktop, headless = true)
62
- end
63
-
64
- it 'connects to a local headless Firefox browser' do
65
- ENV['WEB_BROWSER'] = 'firefox_headless'
66
- WebDriverConnect.initialize_web_driver
67
- Browsers.delete_all_cookies
68
- verify_local_browser(browser = :firefox_headless, platform = :desktop, headless = true)
69
- end
70
- end
71
-
72
- after(:each) do
73
- Capybara.current_session.quit
74
- Environ.session_state = :quit
75
- end
76
-
77
- def verify_local_browser(browser, platform, headless)
78
- expect(Environ.browser).to eq(browser)
79
- expect(Environ.platform).to eq(platform)
80
- expect(Environ.headless).to eq(headless)
81
- expect(Environ.session_state).to eq(:running)
82
- expect(Environ.driver).to eq(:webdriver)
83
- expect(Environ.device).to eq(:web)
84
- expect(Environ.is_web?).to eq(true)
85
- end
86
- end
@@ -1,65 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- describe TestCentricity::WebDriverConnect, mobile: true do
4
- before(:context) do
5
- # instantiate local test environment
6
- @environs ||= EnvironData
7
- @environs.find_environ('LOCAL', :yaml)
8
- ENV['SELENIUM'] = ''
9
- ENV['WEB_BROWSER'] = 'appium'
10
- ENV['DEVICE_TYPE'] = 'tablet'
11
- # start Appium server
12
- $server = TestCentricity::AppiumServer.new
13
- $server.start
14
- end
15
-
16
- context 'Mobile device simulator' do
17
- it 'connects to iOS Simulator' do
18
- ENV['AUTOMATION_ENGINE'] = 'XCUITest'
19
- ENV['APP_PLATFORM_NAME'] = 'ios'
20
- ENV['APP_BROWSER'] = 'Safari'
21
- ENV['APP_VERSION'] = '15.4'
22
- ENV['APP_DEVICE'] = 'iPad Pro (12.9-inch) (5th generation)'
23
- WebDriverConnect.initialize_web_driver
24
- expect(Environ.browser).to eq(:appium)
25
- expect(Environ.platform).to eq(:mobile)
26
- expect(Environ.headless).to eq(false)
27
- expect(Environ.session_state).to eq(:running)
28
- expect(Environ.driver).to eq(:appium)
29
- expect(Environ.device).to eq(:simulator)
30
- expect(Environ.device_name).to eq('iPad Pro (12.9-inch) (5th generation)')
31
- expect(Environ.device_os).to eq(:ios)
32
- expect(Environ.device_type).to eq(:tablet)
33
- expect(Environ.device_os_version).to eq('15.4')
34
- expect(Environ.is_ios?).to eq(true)
35
- end
36
-
37
- it 'connects to Android Simulator' do
38
- ENV['APP_PLATFORM_NAME'] = 'Android'
39
- ENV['APP_BROWSER'] = 'Chrome'
40
- ENV['APP_VERSION'] = '12.0'
41
- ENV['APP_DEVICE'] = 'Pixel_C_API_31'
42
- WebDriverConnect.initialize_web_driver
43
- expect(Environ.browser).to eq(:appium)
44
- expect(Environ.platform).to eq(:mobile)
45
- expect(Environ.headless).to eq(false)
46
- expect(Environ.session_state).to eq(:running)
47
- expect(Environ.driver).to eq(:appium)
48
- expect(Environ.device).to eq(:simulator)
49
- expect(Environ.device_name).to eq('Pixel_C_API_31')
50
- expect(Environ.device_os).to eq(:android)
51
- expect(Environ.device_type).to eq(:tablet)
52
- expect(Environ.device_os_version).to eq('12.0')
53
- expect(Environ.is_android?).to eq(true)
54
- end
55
- end
56
-
57
- after(:each) do
58
- Capybara.current_session.quit
59
- Environ.session_state = :quit
60
- end
61
-
62
- after(:context) do
63
- $server.stop if Environ.driver == :appium && $server.running?
64
- end
65
- end