testcentricity 3.0.4 → 3.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (87) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +29 -0
  3. data/README.md +48 -46
  4. data/lib/testcentricity/app_core/appium_connect_helper.rb +6 -8
  5. data/lib/testcentricity/app_core/screen_section.rb +0 -1
  6. data/lib/testcentricity/app_elements/app_element_helper.rb +14 -4
  7. data/lib/testcentricity/version.rb +1 -1
  8. metadata +13 -158
  9. data/.gitignore +0 -40
  10. data/.rspec +0 -4
  11. data/.rubocop.yml +0 -38
  12. data/.ruby-version +0 -1
  13. data/.simplecov +0 -9
  14. data/CODE_OF_CONDUCT.md +0 -13
  15. data/Gemfile +0 -6
  16. data/Rakefile +0 -63
  17. data/config/cucumber.yml +0 -146
  18. data/config/locales/en-US.yml +0 -56
  19. data/config/test_data/data.yml +0 -76
  20. data/features/deep_links.feature +0 -38
  21. data/features/login.feature +0 -30
  22. data/features/navigation.feature +0 -43
  23. data/features/step_definitions/generic_steps.rb +0 -67
  24. data/features/support/android/screens/about_screen.rb +0 -11
  25. data/features/support/android/screens/base_app_screen.rb +0 -31
  26. data/features/support/android/screens/biometrics_screen.rb +0 -17
  27. data/features/support/android/screens/checkout_address_screen.rb +0 -17
  28. data/features/support/android/screens/checkout_payment_screen.rb +0 -22
  29. data/features/support/android/screens/geo_location_screen.rb +0 -28
  30. data/features/support/android/screens/login_screen.rb +0 -18
  31. data/features/support/android/screens/product_item_screen.rb +0 -39
  32. data/features/support/android/screens/products_screen.rb +0 -27
  33. data/features/support/android/screens/qr_code_scanner_screen.rb +0 -15
  34. data/features/support/android/screens/saucebot_screen.rb +0 -16
  35. data/features/support/android/screens/webview_screen.rb +0 -13
  36. data/features/support/android/sections/list_items/product_list_item.rb +0 -13
  37. data/features/support/android/sections/nav_widgets/nav_menu.rb +0 -39
  38. data/features/support/data/product_data.rb +0 -27
  39. data/features/support/data/user_data.rb +0 -17
  40. data/features/support/env.rb +0 -62
  41. data/features/support/hooks.rb +0 -135
  42. data/features/support/ios/screens/about_screen.rb +0 -11
  43. data/features/support/ios/screens/base_app_screen.rb +0 -20
  44. data/features/support/ios/screens/biometrics_screen.rb +0 -17
  45. data/features/support/ios/screens/checkout_address_screen.rb +0 -17
  46. data/features/support/ios/screens/checkout_payment_screen.rb +0 -22
  47. data/features/support/ios/screens/geo_location_screen.rb +0 -32
  48. data/features/support/ios/screens/login_screen.rb +0 -18
  49. data/features/support/ios/screens/product_item_screen.rb +0 -39
  50. data/features/support/ios/screens/products_screen.rb +0 -27
  51. data/features/support/ios/screens/qr_code_scanner_screen.rb +0 -11
  52. data/features/support/ios/screens/saucebot_screen.rb +0 -16
  53. data/features/support/ios/screens/webview_screen.rb +0 -13
  54. data/features/support/ios/sections/list_items/product_list_item.rb +0 -13
  55. data/features/support/ios/sections/nav_widgets/nav_bar.rb +0 -31
  56. data/features/support/ios/sections/nav_widgets/nav_menu.rb +0 -41
  57. data/features/support/shared_components/screens/base_app_screen.rb +0 -35
  58. data/features/support/shared_components/screens/checkout_address_screen.rb +0 -17
  59. data/features/support/shared_components/screens/checkout_payment_screen.rb +0 -22
  60. data/features/support/shared_components/screens/login_screen.rb +0 -39
  61. data/features/support/shared_components/screens/saucebot_screen.rb +0 -17
  62. data/features/support/shared_components/screens/webview_screen.rb +0 -12
  63. data/features/support/shared_components/sections/nav_menu.rb +0 -58
  64. data/features/support/world_data.rb +0 -15
  65. data/features/support/world_pages.rb +0 -30
  66. data/reports/.keep +0 -1
  67. data/spec/fixtures/page_object.rb +0 -22
  68. data/spec/fixtures/page_section_object.rb +0 -21
  69. data/spec/fixtures/screen_object.rb +0 -16
  70. data/spec/fixtures/screen_section_object.rb +0 -16
  71. data/spec/spec_helper.rb +0 -33
  72. data/spec/testcentricity/elements/button_spec.rb +0 -18
  73. data/spec/testcentricity/elements/checkbox_spec.rb +0 -28
  74. data/spec/testcentricity/elements/image_spec.rb +0 -13
  75. data/spec/testcentricity/elements/label_spec.rb +0 -18
  76. data/spec/testcentricity/elements/list_spec.rb +0 -13
  77. data/spec/testcentricity/elements/ui_element_spec.rb +0 -72
  78. data/spec/testcentricity/mobile/appium_connect_spec.rb +0 -117
  79. data/spec/testcentricity/mobile/screen_object_spec.rb +0 -63
  80. data/spec/testcentricity/mobile/screen_section_object_spec.rb +0 -56
  81. data/spec/testcentricity/version_spec.rb +0 -7
  82. data/spec/testcentricity/web/browser_spec.rb +0 -41
  83. data/spec/testcentricity/web/local_webdriver_spec.rb +0 -86
  84. data/spec/testcentricity/web/mobile_webdriver_spec.rb +0 -123
  85. data/spec/testcentricity/web/page_object_spec.rb +0 -85
  86. data/spec/testcentricity/web/page_section_object_spec.rb +0 -72
  87. data/testcentricity.gemspec +0 -48
@@ -1,13 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- describe TestCentricity::AppList, required: true do
4
- subject(:test_list) { described_class.new(:test_list, self, { accessibility_id: 'list 1' }, :page) }
5
-
6
- it 'returns class' do
7
- expect(test_list.class).to eql TestCentricity::AppList
8
- end
9
-
10
- it 'registers with type list' do
11
- expect(test_list.get_object_type).to eql :list
12
- end
13
- end
@@ -1,72 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- describe TestCentricity::AppUIElement, required: true do
4
- subject(:test_element) { described_class.new(:test_element, self, { accessibility_id: 'element 1' }, :page) }
5
-
6
- it 'returns class' do
7
- expect(test_element.class).to eql described_class
8
- end
9
-
10
- it 'returns name' do
11
- expect(test_element.get_name).to eql :test_element
12
- end
13
-
14
- it 'returns locator' do
15
- expect(test_element.get_locator).to eql({ accessibility_id: 'element 1'})
16
- end
17
-
18
- it 'should click the element' do
19
- allow(test_element).to receive(:click)
20
- test_element.click
21
- end
22
-
23
- it 'should tap the element' do
24
- allow(test_element).to receive(:tap)
25
- test_element.tap
26
- end
27
-
28
- it 'should double tap the element' do
29
- allow(test_element).to receive(:double_tap)
30
- test_element.double_tap
31
- end
32
-
33
- it 'should know if element is visible' do
34
- allow(test_element).to receive(:visible?).and_return(false)
35
- expect(test_element.visible?).to eq(false)
36
- end
37
-
38
- it 'should know if element is hidden' do
39
- allow(test_element).to receive(:hidden?).and_return(true)
40
- expect(test_element.hidden?).to eq(true)
41
- end
42
-
43
- it 'should know if element exists' do
44
- allow(test_element).to receive(:exists?).and_return(true)
45
- expect(test_element.exists?).to be true
46
- end
47
-
48
- it 'should know if element is enabled' do
49
- allow(test_element).to receive(:enabled?).and_return(true)
50
- expect(test_element.enabled?).to eq(true)
51
- end
52
-
53
- it 'should know if element is disabled' do
54
- allow(test_element).to receive(:disabled?).and_return(true)
55
- expect(test_element.disabled?).to eq(true)
56
- end
57
-
58
- it 'should know if element is selected' do
59
- allow(test_element).to receive(:selected?).and_return(true)
60
- expect(test_element.selected?).to eq(true)
61
- end
62
-
63
- it 'returns value' do
64
- allow(test_element).to receive(:value).and_return('value')
65
- expect(test_element.value).to eql 'value'
66
- end
67
-
68
- it 'should send keys' do
69
- allow(test_element).to receive(:send_keys).with('foo bar')
70
- test_element.send_keys('foo bar')
71
- end
72
- end
@@ -1,117 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- describe TestCentricity::AppiumConnect, 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
- ENV['WEB_BROWSER'] = 'appium'
10
- ENV['DEVICE_TYPE'] = 'phone'
11
- ENV['LOCALE'] = 'en-US'
12
- ENV['LANGUAGE'] = 'en'
13
- # start Appium server
14
- $server = TestCentricity::AppiumServer.new
15
- $server.start
16
- end
17
-
18
- context 'Mobile device simulator' do
19
- it 'connects to iOS Simulator using environment variables' do
20
- ENV['AUTOMATION_ENGINE'] = 'XCUITest'
21
- ENV['APP_PLATFORM_NAME'] = 'ios'
22
- ENV['APP_VERSION'] = '15.4'
23
- ENV['APP_DEVICE'] = 'iPhone 13 Pro Max'
24
- ENV['APP'] = Environ.current.ios_app_path
25
- AppiumConnect.initialize_appium
26
- AppiumConnect.start_driver
27
- expect(Environ.browser).to eq(:appium)
28
- expect(Environ.platform).to eq(:mobile)
29
- expect(Environ.driver).to eq(:appium)
30
- expect(Environ.device).to eq(:simulator)
31
- expect(Environ.device_name).to eq('iPhone 13 Pro Max')
32
- expect(Environ.device_os).to eq(:ios)
33
- expect(Environ.device_type).to eq(:phone)
34
- expect(Environ.device_os_version).to eq('15.4')
35
- expect(Environ.is_ios?).to eq(true)
36
- end
37
-
38
- it 'connects to iOS Simulator using desired_capabilities hash' do
39
- ENV['APP_PLATFORM_NAME'] = 'ios'
40
- ENV['APP_VERSION'] = '15.4'
41
- ENV['APP_DEVICE'] = 'iPhone 13 Pro Max'
42
-
43
- capabilities = {
44
- platformName: 'ios',
45
- platformVersion: '15.4',
46
- deviceName: 'iPhone 13 Pro Max',
47
- automationName: 'XCUITest',
48
- app: Environ.current.ios_app_path
49
- }
50
- AppiumConnect.initialize_appium(capabilities)
51
- AppiumConnect.start_driver
52
- expect(Environ.browser).to eq(:appium)
53
- expect(Environ.platform).to eq(:mobile)
54
- expect(Environ.driver).to eq(:appium)
55
- expect(Environ.device).to eq(:simulator)
56
- expect(Environ.device_name).to eq('iPhone 13 Pro Max')
57
- expect(Environ.device_os).to eq(:ios)
58
- expect(Environ.device_type).to eq(:phone)
59
- expect(Environ.device_os_version).to eq('15.4')
60
- expect(Environ.is_ios?).to eq(true)
61
- end
62
-
63
- it 'connects to Android Simulator using environment variables' do
64
- ENV['AUTOMATION_ENGINE'] = 'UiAutomator2'
65
- ENV['APP_PLATFORM_NAME'] = 'Android'
66
- ENV['APP_VERSION'] = '12.0'
67
- ENV['APP_DEVICE'] = 'Pixel_5_API_31'
68
- ENV['APP'] = Environ.current.android_apk_path
69
- AppiumConnect.initialize_appium
70
- AppiumConnect.start_driver
71
- expect(Environ.browser).to eq(:appium)
72
- expect(Environ.platform).to eq(:mobile)
73
- expect(Environ.driver).to eq(:appium)
74
- expect(Environ.device).to eq(:simulator)
75
- expect(Environ.device_name).to eq('Pixel_5_API_31')
76
- expect(Environ.device_os).to eq(:android)
77
- expect(Environ.device_type).to eq(:phone)
78
- expect(Environ.device_os_version).to eq('12.0')
79
- expect(Environ.is_android?).to eq(true)
80
- end
81
-
82
- it 'connects to Android Simulator using desired_capabilities hash' do
83
- ENV['APP_PLATFORM_NAME'] = 'Android'
84
- ENV['APP_VERSION'] = '12.0'
85
- ENV['APP_DEVICE'] = 'Pixel_5_API_31'
86
-
87
- capabilities = {
88
- platformName: 'Android',
89
- platformVersion: '12.0',
90
- deviceName: 'Pixel_5_API_31',
91
- automationName: 'UiAutomator2',
92
- avd: 'Pixel_5_API_31',
93
- app: Environ.current.android_apk_path
94
- }
95
- AppiumConnect.initialize_appium(capabilities)
96
- AppiumConnect.start_driver
97
- expect(Environ.browser).to eq(:appium)
98
- expect(Environ.platform).to eq(:mobile)
99
- expect(Environ.driver).to eq(:appium)
100
- expect(Environ.device).to eq(:simulator)
101
- expect(Environ.device_name).to eq('Pixel_5_API_31')
102
- expect(Environ.device_os).to eq(:android)
103
- expect(Environ.device_type).to eq(:phone)
104
- expect(Environ.device_os_version).to eq('12.0')
105
- expect(Environ.is_android?).to eq(true)
106
- end
107
- end
108
-
109
- after(:each) do
110
- AppiumConnect.quit_driver
111
- Environ.session_state = :quit
112
- end
113
-
114
- after(:context) do
115
- $server.stop if Environ.driver == :appium && $server.running?
116
- end
117
- end
@@ -1,63 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- describe TestCentricity::ScreenObject, required: true do
4
- before :context do
5
- @test_screen = TestScreen.new
6
- end
7
-
8
- context 'screen object traits' do
9
- it 'returns page name' do
10
- expect(@test_screen.page_name).to eq('Basic Test Screen')
11
- end
12
-
13
- it 'returns page locator' do
14
- expect(@test_screen.page_locator).to eq({ accessibility_id: 'test screen' })
15
- end
16
-
17
- it 'responds to open_portal' do
18
- expect(@test_screen).to respond_to(:open_portal)
19
- end
20
-
21
- it 'responds to load_page' do
22
- expect(@test_screen).to respond_to(:load_page)
23
- end
24
-
25
- it 'responds to verify_page_exists' do
26
- expect(@test_screen).to respond_to(:verify_page_exists)
27
- end
28
-
29
- it 'responds to exists?' do
30
- expect(@test_screen).to respond_to(:exists?)
31
- end
32
- end
33
-
34
- context 'page object with UI elements' do
35
- it 'responds to element' do
36
- expect(@test_screen).to respond_to(:element1)
37
- end
38
-
39
- it 'responds to button' do
40
- expect(@test_screen).to respond_to(:button1)
41
- end
42
-
43
- it 'responds to textfield' do
44
- expect(@test_screen).to respond_to(:field1)
45
- end
46
-
47
- it 'responds to image' do
48
- expect(@test_screen).to respond_to(:image1)
49
- end
50
-
51
- it 'responds to switch' do
52
- expect(@test_screen).to respond_to(:switch1)
53
- end
54
-
55
- it 'responds to checkbox' do
56
- expect(@test_screen).to respond_to(:check1)
57
- end
58
-
59
- it 'responds to section' do
60
- expect(@test_screen).to respond_to(:section1)
61
- end
62
- end
63
- end
@@ -1,56 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- describe TestCentricity::ScreenSection, required: true do
4
- before :context do
5
- @test_page = TestScreen.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([{ accessibility_id: 'test section' }])
16
- end
17
-
18
- it 'returns class' do
19
- expect(@test_section.class).to eql TestScreenSection
20
- end
21
-
22
- it 'registers with type section' do
23
- expect(@test_section.get_object_type).to eql :section
24
- end
25
- end
26
-
27
- context 'section object with UI elements' do
28
- it 'responds to element' do
29
- expect(@test_section).to respond_to(:element1)
30
- end
31
-
32
- it 'responds to button' do
33
- expect(@test_section).to respond_to(:button1)
34
- end
35
-
36
- it 'responds to textfield' do
37
- expect(@test_section).to respond_to(:field1)
38
- end
39
-
40
- it 'responds to image' do
41
- expect(@test_section).to respond_to(:image1)
42
- end
43
-
44
- it 'responds to switch' do
45
- expect(@test_section).to respond_to(:switch1)
46
- end
47
-
48
- it 'responds to checkbox' do
49
- expect(@test_section).to respond_to(:check1)
50
- end
51
-
52
- it 'responds to section' do
53
- expect(@test_section).to respond_to(:section2)
54
- end
55
- end
56
- end
@@ -1,7 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- describe 'TestCentricity::VERSION', required: true do
4
- subject { TestCentricity::VERSION }
5
-
6
- it { is_expected.to be_truthy }
7
- end
@@ -1,41 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- describe TestCentricity::Browsers, web: true do
4
- before(:context) do
5
- # instantiate local test environment
6
- @environs ||= EnvironData
7
- @environs.find_environ('LOCAL', :yaml)
8
- ENV['WEB_BROWSER'] = 'chrome_headless'
9
- end
10
-
11
- context 'web browser with multiple tabs/windows' do
12
- it 'returns number of browser windows/tabs' do
13
- WebDriverConnect.initialize_web_driver
14
- Capybara.current_session.open_new_window
15
- Capybara.current_session.open_new_window
16
- expect(Browsers.num_browser_instances).to eql 3
17
- end
18
-
19
- it 'closes original browser instance' do
20
- WebDriverConnect.initialize_web_driver
21
- Capybara.current_session.open_new_window
22
- Browsers.close_old_browser_instance
23
- expect(Browsers.num_browser_instances).to eql 1
24
- end
25
-
26
- it 'closes current browser instance' do
27
- WebDriverConnect.initialize_web_driver
28
- Capybara.current_session.open_new_window
29
- Browsers.switch_to_new_browser_instance
30
- Capybara.current_session.open_new_window
31
- Browsers.close_current_browser_instance
32
- expect(Browsers.num_browser_instances).to eql 2
33
- end
34
- end
35
-
36
- after(:each) do
37
- Browsers.close_all_browser_instances
38
- Capybara.current_session.quit
39
- Environ.session_state = :quit
40
- end
41
- end
@@ -1,86 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- describe TestCentricity::WebDriverConnect, web: 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,123 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- describe TestCentricity::WebDriverConnect, web: 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 - environment variables' 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 iOS Simulator - desired_capabilities hash' do
38
- ENV['APP_PLATFORM_NAME'] = 'ios'
39
- ENV['APP_BROWSER'] = 'Safari'
40
- ENV['APP_VERSION'] = '15.4'
41
- ENV['APP_DEVICE'] = 'iPad Pro (12.9-inch) (5th generation)'
42
-
43
- caps = {
44
- desired_capabilities: {
45
- platformName: 'ios',
46
- platformVersion: '15.4',
47
- browserName: 'Safari',
48
- deviceName: 'iPad Pro (12.9-inch) (5th generation)',
49
- automationName: 'XCUITest'
50
- }
51
- }
52
- WebDriverConnect.initialize_web_driver(caps)
53
- expect(Environ.browser).to eq(:appium)
54
- expect(Environ.platform).to eq(:mobile)
55
- expect(Environ.headless).to eq(false)
56
- expect(Environ.session_state).to eq(:running)
57
- expect(Environ.driver).to eq(:appium)
58
- expect(Environ.device).to eq(:simulator)
59
- expect(Environ.device_name).to eq('iPad Pro (12.9-inch) (5th generation)')
60
- expect(Environ.device_os).to eq(:ios)
61
- expect(Environ.device_type).to eq(:tablet)
62
- expect(Environ.device_os_version).to eq('15.4')
63
- expect(Environ.is_ios?).to eq(true)
64
- end
65
-
66
- it 'connects to Android Simulator - environment variables' do
67
- ENV['APP_PLATFORM_NAME'] = 'Android'
68
- ENV['APP_BROWSER'] = 'Chrome'
69
- ENV['APP_VERSION'] = '12.0'
70
- ENV['APP_DEVICE'] = 'Pixel_C_API_31'
71
- WebDriverConnect.initialize_web_driver
72
- expect(Environ.browser).to eq(:appium)
73
- expect(Environ.platform).to eq(:mobile)
74
- expect(Environ.headless).to eq(false)
75
- expect(Environ.session_state).to eq(:running)
76
- expect(Environ.driver).to eq(:appium)
77
- expect(Environ.device).to eq(:simulator)
78
- expect(Environ.device_name).to eq('Pixel_C_API_31')
79
- expect(Environ.device_os).to eq(:android)
80
- expect(Environ.device_type).to eq(:tablet)
81
- expect(Environ.device_os_version).to eq('12.0')
82
- expect(Environ.is_android?).to eq(true)
83
- end
84
-
85
- it 'connects to Android Simulator - desired_capabilities hash' do
86
- ENV['APP_PLATFORM_NAME'] = 'Android'
87
- ENV['APP_BROWSER'] = 'Chrome'
88
- ENV['APP_VERSION'] = '12.0'
89
- ENV['APP_DEVICE'] = 'Pixel_C_API_31'
90
-
91
- caps = {
92
- desired_capabilities: {
93
- platformName: 'Android',
94
- platformVersion: '12.0',
95
- browserName: 'Chrome',
96
- deviceName: 'Pixel_C_API_31',
97
- automationName: 'Android'
98
- }
99
- }
100
- WebDriverConnect.initialize_web_driver(caps)
101
- expect(Environ.browser).to eq(:appium)
102
- expect(Environ.platform).to eq(:mobile)
103
- expect(Environ.headless).to eq(false)
104
- expect(Environ.session_state).to eq(:running)
105
- expect(Environ.driver).to eq(:appium)
106
- expect(Environ.device).to eq(:simulator)
107
- expect(Environ.device_name).to eq('Pixel_C_API_31')
108
- expect(Environ.device_os).to eq(:android)
109
- expect(Environ.device_type).to eq(:tablet)
110
- expect(Environ.device_os_version).to eq('12.0')
111
- expect(Environ.is_android?).to eq(true)
112
- end
113
- end
114
-
115
- after(:each) do
116
- Capybara.current_session.quit
117
- Environ.session_state = :quit
118
- end
119
-
120
- after(:context) do
121
- $server.stop if Environ.driver == :appium && $server.running?
122
- end
123
- end
@@ -1,85 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- describe TestCentricity::PageObject, web: 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 'responds to open_portal' do
32
- expect(@test_page).to respond_to(:open_portal)
33
- end
34
-
35
- it 'responds to load_page' do
36
- expect(@test_page).to respond_to(:load_page)
37
- end
38
-
39
- it 'responds to verify_page_exists' do
40
- expect(@test_page).to respond_to(:verify_page_exists)
41
- end
42
-
43
- it 'responds to exists?' do
44
- expect(@test_page).to respond_to(:exists?)
45
- end
46
- end
47
-
48
- context 'page object with UI elements' do
49
- it 'responds to element' do
50
- expect(@test_page).to respond_to(:element1)
51
- end
52
-
53
- it 'responds to button' do
54
- expect(@test_page).to respond_to(:button1)
55
- end
56
-
57
- it 'responds to textfield' do
58
- expect(@test_page).to respond_to(:field1)
59
- end
60
-
61
- it 'responds to link' do
62
- expect(@test_page).to respond_to(:link1)
63
- end
64
-
65
- it 'responds to range' do
66
- expect(@test_page).to respond_to(:range1)
67
- end
68
-
69
- it 'responds to image' do
70
- expect(@test_page).to respond_to(:image1)
71
- end
72
-
73
- it 'responds to radio' do
74
- expect(@test_page).to respond_to(:radio1)
75
- end
76
-
77
- it 'responds to checkbox' do
78
- expect(@test_page).to respond_to(:check1)
79
- end
80
-
81
- it 'responds to section' do
82
- expect(@test_page).to respond_to(:section1)
83
- end
84
- end
85
- end