testcentricity 3.0.2 → 3.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (81) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +26 -0
  3. data/README.md +1 -0
  4. data/lib/testcentricity/app_core/appium_connect_helper.rb +1 -0
  5. data/lib/testcentricity/app_core/screen_section.rb +0 -1
  6. data/lib/testcentricity/app_elements/alert.rb +64 -0
  7. data/lib/testcentricity/app_elements/app_element_helper.rb +56 -13
  8. data/lib/testcentricity/version.rb +1 -1
  9. metadata +7 -165
  10. data/.gitignore +0 -40
  11. data/.rspec +0 -4
  12. data/.rubocop.yml +0 -38
  13. data/.ruby-version +0 -1
  14. data/.simplecov +0 -9
  15. data/CODE_OF_CONDUCT.md +0 -13
  16. data/Gemfile +0 -6
  17. data/Rakefile +0 -63
  18. data/config/cucumber.yml +0 -145
  19. data/config/locales/en-US.yml +0 -56
  20. data/config/test_data/LOCAL_data.yml +0 -11
  21. data/config/test_data/data.yml +0 -10
  22. data/features/deep_links.feature +0 -26
  23. data/features/login.feature +0 -30
  24. data/features/navigation.feature +0 -31
  25. data/features/step_definitions/generic_steps.rb +0 -72
  26. data/features/support/android/screens/about_screen.rb +0 -11
  27. data/features/support/android/screens/base_app_screen.rb +0 -29
  28. data/features/support/android/screens/checkout_address_screen.rb +0 -17
  29. data/features/support/android/screens/checkout_payment_screen.rb +0 -22
  30. data/features/support/android/screens/login_screen.rb +0 -18
  31. data/features/support/android/screens/products_screen.rb +0 -13
  32. data/features/support/android/screens/saucebot_screen.rb +0 -16
  33. data/features/support/android/screens/webview_screen.rb +0 -13
  34. data/features/support/android/sections/nav_widgets/nav_menu.rb +0 -39
  35. data/features/support/env.rb +0 -61
  36. data/features/support/hooks.rb +0 -135
  37. data/features/support/ios/screens/about_screen.rb +0 -11
  38. data/features/support/ios/screens/base_app_screen.rb +0 -19
  39. data/features/support/ios/screens/checkout_address_screen.rb +0 -17
  40. data/features/support/ios/screens/checkout_payment_screen.rb +0 -22
  41. data/features/support/ios/screens/login_screen.rb +0 -18
  42. data/features/support/ios/screens/products_screen.rb +0 -13
  43. data/features/support/ios/screens/saucebot_screen.rb +0 -16
  44. data/features/support/ios/screens/webview_screen.rb +0 -13
  45. data/features/support/ios/sections/list_items/product_cell_item.rb +0 -13
  46. data/features/support/ios/sections/modals/base_modal.rb +0 -23
  47. data/features/support/ios/sections/modals/logout_modal.rb +0 -6
  48. data/features/support/ios/sections/modals/reset_app_state_modal.rb +0 -6
  49. data/features/support/ios/sections/nav_widgets/nav_bar.rb +0 -31
  50. data/features/support/ios/sections/nav_widgets/nav_menu.rb +0 -41
  51. data/features/support/shared_components/screens/base_app_screen.rb +0 -31
  52. data/features/support/shared_components/screens/checkout_address_screen.rb +0 -17
  53. data/features/support/shared_components/screens/checkout_payment_screen.rb +0 -22
  54. data/features/support/shared_components/screens/login_screen.rb +0 -39
  55. data/features/support/shared_components/screens/saucebot_screen.rb +0 -17
  56. data/features/support/shared_components/screens/webview_screen.rb +0 -12
  57. data/features/support/shared_components/sections/nav_menu.rb +0 -58
  58. data/features/support/world_data.rb +0 -12
  59. data/features/support/world_pages.rb +0 -26
  60. data/reports/.keep +0 -1
  61. data/spec/fixtures/page_object.rb +0 -22
  62. data/spec/fixtures/page_section_object.rb +0 -21
  63. data/spec/fixtures/screen_object.rb +0 -16
  64. data/spec/fixtures/screen_section_object.rb +0 -16
  65. data/spec/spec_helper.rb +0 -33
  66. data/spec/testcentricity/elements/button_spec.rb +0 -18
  67. data/spec/testcentricity/elements/checkbox_spec.rb +0 -28
  68. data/spec/testcentricity/elements/image_spec.rb +0 -13
  69. data/spec/testcentricity/elements/label_spec.rb +0 -18
  70. data/spec/testcentricity/elements/list_spec.rb +0 -13
  71. data/spec/testcentricity/elements/ui_element_spec.rb +0 -72
  72. data/spec/testcentricity/mobile/appium_connect_spec.rb +0 -117
  73. data/spec/testcentricity/mobile/screen_object_spec.rb +0 -63
  74. data/spec/testcentricity/mobile/screen_section_object_spec.rb +0 -56
  75. data/spec/testcentricity/version_spec.rb +0 -7
  76. data/spec/testcentricity/web/browser_spec.rb +0 -41
  77. data/spec/testcentricity/web/local_webdriver_spec.rb +0 -86
  78. data/spec/testcentricity/web/mobile_webdriver_spec.rb +0 -123
  79. data/spec/testcentricity/web/page_object_spec.rb +0 -85
  80. data/spec/testcentricity/web/page_section_object_spec.rb +0 -72
  81. data/testcentricity.gemspec +0 -50
@@ -1,12 +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
- end
9
- end
10
-
11
-
12
- World(WorldData)
@@ -1,26 +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
- checkout_address_screen: CheckoutAddressScreen,
19
- checkout_payment_screen: CheckoutPaymentScreen,
20
- saucebot_video_screen: SauceBotScreen
21
- }
22
- end
23
- end
24
-
25
-
26
- 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
@@ -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