testcentricity 3.0.4 → 3.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (86) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +10 -0
  3. data/lib/testcentricity/app_core/appium_connect_helper.rb +1 -0
  4. data/lib/testcentricity/app_core/screen_section.rb +0 -1
  5. data/lib/testcentricity/app_elements/app_element_helper.rb +1 -1
  6. data/lib/testcentricity/version.rb +1 -1
  7. metadata +5 -150
  8. data/.gitignore +0 -40
  9. data/.rspec +0 -4
  10. data/.rubocop.yml +0 -38
  11. data/.ruby-version +0 -1
  12. data/.simplecov +0 -9
  13. data/CODE_OF_CONDUCT.md +0 -13
  14. data/Gemfile +0 -6
  15. data/Rakefile +0 -63
  16. data/config/cucumber.yml +0 -146
  17. data/config/locales/en-US.yml +0 -56
  18. data/config/test_data/data.yml +0 -76
  19. data/features/deep_links.feature +0 -38
  20. data/features/login.feature +0 -30
  21. data/features/navigation.feature +0 -43
  22. data/features/step_definitions/generic_steps.rb +0 -67
  23. data/features/support/android/screens/about_screen.rb +0 -11
  24. data/features/support/android/screens/base_app_screen.rb +0 -31
  25. data/features/support/android/screens/biometrics_screen.rb +0 -17
  26. data/features/support/android/screens/checkout_address_screen.rb +0 -17
  27. data/features/support/android/screens/checkout_payment_screen.rb +0 -22
  28. data/features/support/android/screens/geo_location_screen.rb +0 -28
  29. data/features/support/android/screens/login_screen.rb +0 -18
  30. data/features/support/android/screens/product_item_screen.rb +0 -39
  31. data/features/support/android/screens/products_screen.rb +0 -27
  32. data/features/support/android/screens/qr_code_scanner_screen.rb +0 -15
  33. data/features/support/android/screens/saucebot_screen.rb +0 -16
  34. data/features/support/android/screens/webview_screen.rb +0 -13
  35. data/features/support/android/sections/list_items/product_list_item.rb +0 -13
  36. data/features/support/android/sections/nav_widgets/nav_menu.rb +0 -39
  37. data/features/support/data/product_data.rb +0 -27
  38. data/features/support/data/user_data.rb +0 -17
  39. data/features/support/env.rb +0 -62
  40. data/features/support/hooks.rb +0 -135
  41. data/features/support/ios/screens/about_screen.rb +0 -11
  42. data/features/support/ios/screens/base_app_screen.rb +0 -20
  43. data/features/support/ios/screens/biometrics_screen.rb +0 -17
  44. data/features/support/ios/screens/checkout_address_screen.rb +0 -17
  45. data/features/support/ios/screens/checkout_payment_screen.rb +0 -22
  46. data/features/support/ios/screens/geo_location_screen.rb +0 -32
  47. data/features/support/ios/screens/login_screen.rb +0 -18
  48. data/features/support/ios/screens/product_item_screen.rb +0 -39
  49. data/features/support/ios/screens/products_screen.rb +0 -27
  50. data/features/support/ios/screens/qr_code_scanner_screen.rb +0 -11
  51. data/features/support/ios/screens/saucebot_screen.rb +0 -16
  52. data/features/support/ios/screens/webview_screen.rb +0 -13
  53. data/features/support/ios/sections/list_items/product_list_item.rb +0 -13
  54. data/features/support/ios/sections/nav_widgets/nav_bar.rb +0 -31
  55. data/features/support/ios/sections/nav_widgets/nav_menu.rb +0 -41
  56. data/features/support/shared_components/screens/base_app_screen.rb +0 -35
  57. data/features/support/shared_components/screens/checkout_address_screen.rb +0 -17
  58. data/features/support/shared_components/screens/checkout_payment_screen.rb +0 -22
  59. data/features/support/shared_components/screens/login_screen.rb +0 -39
  60. data/features/support/shared_components/screens/saucebot_screen.rb +0 -17
  61. data/features/support/shared_components/screens/webview_screen.rb +0 -12
  62. data/features/support/shared_components/sections/nav_menu.rb +0 -58
  63. data/features/support/world_data.rb +0 -15
  64. data/features/support/world_pages.rb +0 -30
  65. data/reports/.keep +0 -1
  66. data/spec/fixtures/page_object.rb +0 -22
  67. data/spec/fixtures/page_section_object.rb +0 -21
  68. data/spec/fixtures/screen_object.rb +0 -16
  69. data/spec/fixtures/screen_section_object.rb +0 -16
  70. data/spec/spec_helper.rb +0 -33
  71. data/spec/testcentricity/elements/button_spec.rb +0 -18
  72. data/spec/testcentricity/elements/checkbox_spec.rb +0 -28
  73. data/spec/testcentricity/elements/image_spec.rb +0 -13
  74. data/spec/testcentricity/elements/label_spec.rb +0 -18
  75. data/spec/testcentricity/elements/list_spec.rb +0 -13
  76. data/spec/testcentricity/elements/ui_element_spec.rb +0 -72
  77. data/spec/testcentricity/mobile/appium_connect_spec.rb +0 -117
  78. data/spec/testcentricity/mobile/screen_object_spec.rb +0 -63
  79. data/spec/testcentricity/mobile/screen_section_object_spec.rb +0 -56
  80. data/spec/testcentricity/version_spec.rb +0 -7
  81. data/spec/testcentricity/web/browser_spec.rb +0 -41
  82. data/spec/testcentricity/web/local_webdriver_spec.rb +0 -86
  83. data/spec/testcentricity/web/mobile_webdriver_spec.rb +0 -123
  84. data/spec/testcentricity/web/page_object_spec.rb +0 -85
  85. data/spec/testcentricity/web/page_section_object_spec.rb +0 -72
  86. data/testcentricity.gemspec +0 -48
@@ -1,17 +0,0 @@
1
- module SharedSauceBotScreen
2
- def verify_page_ui
3
- super
4
- video_player.wait_until_visible(10)
5
- ui = {
6
- header_label => { visible: true, caption: 'SauceBot - The Beginning' },
7
- video_player => { visible: true, enabled: true },
8
- video_back => { visible: true, enabled: true },
9
- video_pause => { visible: true, enabled: true },
10
- video_play => { visible: false },
11
- video_forward => { visible: true, enabled: true },
12
- video_volume => { visible: true, enabled: true },
13
- video_mute => { visible: false }
14
- }
15
- verify_ui_states(ui)
16
- end
17
- end
@@ -1,12 +0,0 @@
1
- module SharedWebViewScreen
2
- def verify_page_ui
3
- super
4
- ui = {
5
- header_label => { visible: true, caption: 'Webview' },
6
- url_label => { visible: true, caption: 'URL' },
7
- url_field => { visible: true, enabled: true, placeholder: 'https://www.website.com' },
8
- go_to_site_button => { visible: true, enabled: true, caption: 'Go To Site' }
9
- }
10
- verify_ui_states(ui)
11
- end
12
- end
@@ -1,58 +0,0 @@
1
- module SharedNavMenu
2
- def close
3
- close_button.click
4
- self.wait_until_hidden(3)
5
- end
6
-
7
- def verify_closed
8
- verify_ui_states(close_button => { visible: false })
9
- end
10
-
11
- def open_webview
12
- webview_button.click
13
- end
14
-
15
- def open_qr_code_scanner
16
- qr_code_button.click
17
- end
18
-
19
- def open_geo_location
20
- geo_location_button.click
21
- end
22
-
23
- def open_drawing
24
- drawing_button.click
25
- end
26
-
27
- def open_report_a_bug
28
- report_a_bug_button.click
29
- end
30
-
31
- def open_about
32
- about_button.click
33
- end
34
-
35
- def open_reset_app
36
- reset_app_button.click
37
- end
38
-
39
- def open_biometrics
40
- biometrics_button.click
41
- end
42
-
43
- def open_log_in
44
- log_in_button.click
45
- end
46
-
47
- def open_log_out
48
- log_out_button.click
49
- end
50
-
51
- def open_api_calls
52
- api_calls_button.click
53
- end
54
-
55
- def open_saucebot_video
56
- sauce_video_button.click
57
- end
58
- end
@@ -1,15 +0,0 @@
1
- module WorldData
2
- #
3
- # data_objects method returns a hash table of your web app's data objects and associated data object classes to be instantiated
4
- # by the TestCentricity™ DataManager. Data Object class definitions are contained in the features/support/data folder.
5
- #
6
- def data_objects
7
- {
8
- user_data_source: UserDataSource,
9
- product_data_source: ProductDataSource
10
- }
11
- end
12
- end
13
-
14
-
15
- World(WorldData)
@@ -1,30 +0,0 @@
1
- module WorldPages
2
-
3
- #
4
- # The page_objects method returns a hash table of your web or native mobile app's page objects and associated page
5
- # classes to be instantiated by the TestCentricity PageManager.
6
- #
7
- # Web Page Object class definitions are contained in the features/support/web/pages folder.
8
- # iOS Screen Object class definitions are contained in the features/support/ios/screens folder.
9
- # Android Screen Object class definitions are contained in the features/support/android/screens folder.
10
- #
11
- def page_objects
12
- {
13
- base_app_screen: BaseAppScreen,
14
- about_screen: AboutScreen,
15
- login_screen: LoginScreen,
16
- webview_screen: WebViewScreen,
17
- products_screen: ProductsScreen,
18
- product_item_screen: ProductItemScreen,
19
- checkout_address_screen: CheckoutAddressScreen,
20
- checkout_payment_screen: CheckoutPaymentScreen,
21
- qr_code_scanner_screen: QRCodeScannerScreen,
22
- geo_location_screen: GeoLocationScreen,
23
- biometrics_screen: BiometricsScreen,
24
- saucebot_video_screen: SauceBotScreen
25
- }
26
- end
27
- end
28
-
29
-
30
- World(WorldPages)
data/reports/.keep DELETED
@@ -1 +0,0 @@
1
- Placeholder file to allow the reports folder to be saved to repository. This folder is required for Jenkins test jobs using the Cucumber Reporting plug-in.
@@ -1,22 +0,0 @@
1
- class TestPage < TestCentricity::PageObject
2
- trait(:page_name) { 'Basic Test Page' }
3
- trait(:page_url) { '/basic_test_page.html' }
4
- trait(:page_locator) { 'form#HTMLFormElements' }
5
-
6
- elements element1: 'div#element1'
7
- buttons button1: 'button#button1'
8
- textfields field1: 'input#field1'
9
- links link1: 'a#link1'
10
- ranges range1: 'input#range1'
11
- images image1: 'img#image1'
12
- radios radio1: 'input#radio1'
13
- checkboxes check1: 'input#check1'
14
- filefields file1: 'input#file1'
15
- labels label1: 'label#label1'
16
- tables table1: 'table#table1'
17
- selectlists select1: 'select#select1'
18
- lists list1: 'ul#list1'
19
- videos video1: 'video#video1'
20
- audios audio1: 'audio#audio1'
21
- sections section1: TestPageSection
22
- end
@@ -1,21 +0,0 @@
1
- class TestPageSection < TestCentricity::PageSection
2
- trait(:section_locator) { 'div#section' }
3
- trait(:section_name) { 'Basic Test Section' }
4
-
5
- elements element1: 'div#element1'
6
- buttons button1: 'button#button1'
7
- textfields field1: 'input#field1'
8
- links link1: 'a#link1'
9
- ranges range1: 'input#range1'
10
- images image1: 'img#image1'
11
- radios radio1: 'input#radio1'
12
- checkboxes check1: 'input#check1'
13
- filefields file1: 'input#file1'
14
- labels label1: 'label#label1'
15
- tables table1: 'table#table1'
16
- selectlists select1: 'select#select1'
17
- lists list1: 'ul#list1'
18
- videos video1: 'video#video1'
19
- audios audio1: 'audio#audio1'
20
- sections section2: TestPageSection
21
- end
@@ -1,16 +0,0 @@
1
- class TestScreen < TestCentricity::ScreenObject
2
- trait(:page_name) { 'Basic Test Screen' }
3
- trait(:page_locator) { { accessibility_id: 'test screen' } }
4
-
5
- elements element1: { accessibility_id: 'element 1' }
6
- buttons button1: { accessibility_id: 'button 1' }
7
- textfields field1: { accessibility_id: 'text input 1' }
8
- checkboxes check1: { accessibility_id: 'checkbox 1' }
9
- labels label1: { accessibility_id: 'label 1' }
10
- images image1: { accessibility_id: 'image 1' }
11
- switches switch1: { accessibility_id: 'switch 1' }
12
- lists list1: { accessibility_id: 'list 1' }
13
- selectlists selectlist1: { accessibility_id: 'selectlist 1' }
14
- alerts alert1: { accessibility_id: 'alert 1' }
15
- sections section1: TestScreenSection
16
- end
@@ -1,16 +0,0 @@
1
- class TestScreenSection < TestCentricity::ScreenSection
2
- trait(:section_locator) { { accessibility_id: 'test section' } }
3
- trait(:section_name) { 'Basic Test Section' }
4
-
5
- elements element1: { accessibility_id: 'element 1' }
6
- buttons button1: { accessibility_id: 'button 1' }
7
- textfields field1: { accessibility_id: 'text input 1' }
8
- checkboxes check1: { accessibility_id: 'checkbox 1' }
9
- labels label1: { accessibility_id: 'label 1' }
10
- images image1: { accessibility_id: 'image 1' }
11
- switches switch1: { accessibility_id: 'switch 1' }
12
- lists list1: { accessibility_id: 'list 1' }
13
- selectlists selectlist1: { accessibility_id: 'selectlist 1' }
14
- alert :alert1, { accessibility_id: 'alert 1' }
15
- sections section2: TestScreenSection
16
- end
data/spec/spec_helper.rb DELETED
@@ -1,33 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'capybara/rspec'
4
- require 'require_all'
5
- require 'simplecov'
6
- require 'testcentricity'
7
- require 'testcentricity_web'
8
-
9
- require_rel 'fixtures'
10
-
11
- include TestCentricity
12
-
13
- SimpleCov.command_name("RSpec-#{Time.now.strftime('%Y%m%d%H%M%S')}")
14
-
15
- $LOAD_PATH << './lib'
16
-
17
- # set the default locale and auto load all translations from config/locales/*.rb,yml.
18
- ENV['LOCALE'] = 'en-US' unless ENV['LOCALE']
19
- I18n.load_path += Dir['config/locales/*.{rb,yml}']
20
- I18n.default_locale = 'en-US'
21
- I18n.locale = ENV['LOCALE']
22
- Faker::Config.locale = ENV['LOCALE']
23
-
24
- # prevent Test::Unit's AutoRunner from executing during RSpec's rake task
25
- Test::Unit.run = true if defined?(Test::Unit) && Test::Unit.respond_to?(:run=)
26
-
27
- RSpec.configure do |config|
28
- config.mock_with :rspec do |mocks|
29
- mocks.allow_message_expectations_on_nil = true
30
- mocks.verify_doubled_constant_names = true
31
- mocks.verify_partial_doubles = true
32
- end
33
- end
@@ -1,18 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- describe TestCentricity::AppButton, required: true do
4
- subject(:test_button) { described_class.new(:test_button, self, { accessibility_id: 'button 1' }, :page) }
5
-
6
- it 'returns class' do
7
- expect(test_button.class).to eql TestCentricity::AppButton
8
- end
9
-
10
- it 'registers with type button' do
11
- expect(test_button.get_object_type).to eql :button
12
- end
13
-
14
- it 'should click the button' do
15
- expect(test_button).to receive(:click)
16
- test_button.click
17
- end
18
- end
@@ -1,28 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- describe TestCentricity::AppCheckBox, required: true do
4
- subject(:test_check) { described_class.new(:test_check, self, { accessibility_id: 'check 1' }, :page) }
5
-
6
- it 'returns class' do
7
- expect(test_check.class).to eql TestCentricity::AppCheckBox
8
- end
9
-
10
- it 'registers with type checkbox' do
11
- expect(test_check.get_object_type).to eql :checkbox
12
- end
13
-
14
- it 'should check the checkbox' do
15
- expect(test_check).to receive(:check)
16
- test_check.check
17
- end
18
-
19
- it 'should uncheck the checkbox' do
20
- expect(test_check).to receive(:uncheck)
21
- test_check.uncheck
22
- end
23
-
24
- it 'should know if checkbox is checked' do
25
- allow(test_check).to receive(:checked?).and_return(true)
26
- expect(test_check.checked?).to eq(true)
27
- end
28
- end
@@ -1,13 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- describe TestCentricity::AppImage, required: true do
4
- subject(:test_image) { described_class.new(:test_image, self, { accessibility_id: 'image 1' }, :page) }
5
-
6
- it 'returns class' do
7
- expect(test_image.class).to eql TestCentricity::AppImage
8
- end
9
-
10
- it 'registers with type image' do
11
- expect(test_image.get_object_type).to eql :image
12
- end
13
- end
@@ -1,18 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- describe TestCentricity::AppLabel, required: true do
4
- subject(:test_label) { described_class.new(:test_label, self, { accessibility_id: 'label 1' }, :page) }
5
-
6
- it 'returns class' do
7
- expect(test_label.class).to eql TestCentricity::AppLabel
8
- end
9
-
10
- it 'registers with type label' do
11
- expect(test_label.get_object_type).to eql :label
12
- end
13
-
14
- it 'returns caption' do
15
- allow(test_label).to receive(:caption).and_return('caption')
16
- expect(test_label.caption).to eql 'caption'
17
- end
18
- end
@@ -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