ruby_raider 0.1.8 → 0.1.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/generators/files/automation_file_generator.rb +33 -10
- data/lib/generators/files/common_file_generator.rb +10 -6
- data/lib/generators/files/cucumber_file_generator.rb +4 -4
- data/lib/generators/files/helpers_file_generator.rb +17 -10
- data/lib/generators/files/rspec_file_generator.rb +8 -7
- data/lib/generators/menu_generator.rb +44 -29
- data/lib/generators/projects/cucumber_project_generator.rb +18 -10
- data/lib/generators/projects/project_generator.rb +14 -0
- data/lib/generators/projects/rspec_project_generator.rb +12 -8
- data/lib/generators/templates/automation/abstract_page_template.rb +66 -32
- data/lib/generators/templates/automation/appium_settings_template.rb +16 -0
- data/lib/generators/templates/automation/confirmation_page_template.rb +26 -0
- data/lib/generators/templates/automation/home_page_template.rb +26 -0
- data/lib/generators/templates/automation/login_page_template.rb +113 -0
- data/lib/generators/templates/common/gemfile_template.rb +41 -18
- data/lib/generators/templates/helpers/driver_helper_template.rb +37 -7
- data/lib/generators/templates/helpers/raider_helper_template.rb +15 -3
- data/lib/generators/templates/helpers/spec_helper_template.rb +46 -7
- data/lib/generators/templates/rspec/example_spec_template.rb +44 -21
- data/ruby_raider.gemspec +1 -1
- data/spec/automation_file_generator_spec.rb +52 -27
- data/spec/common_file_generator_spec.rb +1 -1
- data/spec/cucumber_file_generator_spec.rb +1 -1
- data/spec/cucumber_project_generator_spec.rb +1 -1
- data/spec/helpers_file_generator_spec.rb +2 -2
- data/spec/rspec_file_generator_spec.rb +1 -1
- data/spec/rspec_project_generator_spec.rb +53 -32
- metadata +6 -3
- data/lib/generators/templates/automation/page_template.rb +0 -51
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4dcbe671c993c24b4869fb0243906a8cd5d4614d7ea4690e0292cdb8c67a0b58
|
4
|
+
data.tar.gz: 39018ac4bf1d1148ad6a5308ca251d54de216154f774955c9c0c5c966b836019
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0c9ae7dce2543807cf14ed1e51f0d81e015ef40b0e9d791209432cc954d55bb3fe39fe297fb43c4a7a07381431bd069ed4b33de98b30328f161ef25538d5ee6d
|
7
|
+
data.tar.gz: caefa842f497505b6dcfc64e1e35cd27ba4f31f41ec11ac635359acae7540296251b9523054e01fe75d3c247373707a8f669b39eaa2fff3130fc2a8a9e5eef15
|
@@ -1,22 +1,31 @@
|
|
1
1
|
require_relative 'file_generator'
|
2
2
|
require_relative '../templates/automation/abstract_page_template'
|
3
3
|
require_relative '../templates/automation/abstract_component_template'
|
4
|
+
require_relative '../templates/automation/appium_settings_template'
|
4
5
|
require_relative '../templates/automation/component_template'
|
5
|
-
require_relative '../templates/automation/
|
6
|
+
require_relative '../templates/automation/confirmation_page_template'
|
7
|
+
require_relative '../templates/automation/login_page_template'
|
8
|
+
require_relative '../templates/automation/home_page_template'
|
6
9
|
|
7
10
|
module RubyRaider
|
8
11
|
class AutomationFileGenerator < FileGenerator
|
9
12
|
class << self
|
10
|
-
def generate_automation_files(
|
11
|
-
|
13
|
+
def generate_automation_files(automation, name, framework)
|
14
|
+
generate_login_page(automation, name)
|
12
15
|
generate_abstract_page(automation, framework, name)
|
13
|
-
|
14
|
-
|
16
|
+
if %w[selenium watir].include?(automation)
|
17
|
+
generate_example_component(name)
|
18
|
+
generate_abstract_component(framework, name)
|
19
|
+
else
|
20
|
+
generate_home_page(name)
|
21
|
+
generate_confirmation_page(name)
|
22
|
+
generate_appium_settings(name)
|
23
|
+
end
|
15
24
|
end
|
16
25
|
|
17
|
-
def
|
26
|
+
def generate_login_page(automation, name)
|
18
27
|
generate_file('login_page.rb', "#{name}/page_objects/pages",
|
19
|
-
|
28
|
+
LoginPageTemplate.new(automation: automation, name: name).parsed_body)
|
20
29
|
end
|
21
30
|
|
22
31
|
def generate_abstract_page(automation, framework, name)
|
@@ -24,15 +33,29 @@ module RubyRaider
|
|
24
33
|
AbstractPageTemplate.new(automation: automation, framework: framework, name: name).parsed_body)
|
25
34
|
end
|
26
35
|
|
36
|
+
def generate_home_page(name)
|
37
|
+
generate_file('home_page.rb', "#{name}/page_objects/pages",
|
38
|
+
HomePageTemplate.new.parsed_body)
|
39
|
+
end
|
40
|
+
|
41
|
+
def generate_confirmation_page(name)
|
42
|
+
generate_file('confirmation_page.rb', "#{name}/page_objects/pages",
|
43
|
+
ConfirmationPageTemplate.new.parsed_body)
|
44
|
+
end
|
45
|
+
|
27
46
|
def generate_example_component(name)
|
28
|
-
generate_file('header_component.rb',"#{name}/page_objects/components",
|
29
|
-
|
47
|
+
generate_file('header_component.rb', "#{name}/page_objects/components",
|
48
|
+
ComponentTemplate.new.parsed_body)
|
30
49
|
end
|
31
50
|
|
32
51
|
def generate_abstract_component(framework, name)
|
33
|
-
generate_file('abstract_component.rb',"#{name}/page_objects/abstract",
|
52
|
+
generate_file('abstract_component.rb', "#{name}/page_objects/abstract",
|
34
53
|
AbstractComponentTemplate.new(framework: framework).parsed_body)
|
35
54
|
end
|
55
|
+
|
56
|
+
def generate_appium_settings(name)
|
57
|
+
generate_file('appium.txt', name.to_s, AppiumSettingsTemplate.new.parsed_body)
|
58
|
+
end
|
36
59
|
end
|
37
60
|
end
|
38
61
|
end
|
@@ -7,11 +7,14 @@ require_relative 'file_generator'
|
|
7
7
|
module RubyRaider
|
8
8
|
class CommonFileGenerator < FileGenerator
|
9
9
|
class << self
|
10
|
-
def generate_common_files(name, framework)
|
11
|
-
|
12
|
-
|
10
|
+
def generate_common_files(automation, name, framework)
|
11
|
+
if %w[selenium watir].include?(automation)
|
12
|
+
generate_config_file(name)
|
13
|
+
generate_rake_file(name)
|
14
|
+
end
|
15
|
+
|
13
16
|
generate_readme_file(name)
|
14
|
-
generate_gemfile(framework, name)
|
17
|
+
generate_gemfile(automation, framework, name)
|
15
18
|
end
|
16
19
|
|
17
20
|
def generate_readme_file(name)
|
@@ -26,8 +29,9 @@ module RubyRaider
|
|
26
29
|
generate_file('Rakefile', name.to_s, RakeFileTemplate.new.parsed_body)
|
27
30
|
end
|
28
31
|
|
29
|
-
def generate_gemfile(framework, name)
|
30
|
-
generate_file('Gemfile',name.to_s,
|
32
|
+
def generate_gemfile(automation, framework, name)
|
33
|
+
generate_file('Gemfile',name.to_s,
|
34
|
+
GemfileTemplate.new(automation: automation, framework: framework).parsed_body)
|
31
35
|
end
|
32
36
|
end
|
33
37
|
end
|
@@ -6,10 +6,10 @@ require_relative 'file_generator'
|
|
6
6
|
module RubyRaider
|
7
7
|
class CucumberFileGenerator < FileGenerator
|
8
8
|
class << self
|
9
|
-
def generate_cucumber_files(
|
10
|
-
AutomationFileGenerator.generate_automation_files(
|
11
|
-
CommonFileGenerator.generate_common_files(name, 'cucumber')
|
12
|
-
HelpersFileGenerator.generate_helper_files(
|
9
|
+
def generate_cucumber_files(automation, name)
|
10
|
+
AutomationFileGenerator.generate_automation_files(automation, name, 'framework')
|
11
|
+
CommonFileGenerator.generate_common_files(automation, name, 'cucumber')
|
12
|
+
HelpersFileGenerator.generate_helper_files(automation, name, 'cucumber')
|
13
13
|
generate_env_file(automation, name)
|
14
14
|
generate_example_feature(name)
|
15
15
|
generate_example_steps(name)
|
@@ -11,19 +11,13 @@ require_relative 'file_generator'
|
|
11
11
|
module RubyRaider
|
12
12
|
class HelpersFileGenerator < FileGenerator
|
13
13
|
class << self
|
14
|
-
def generate_helper_files(
|
14
|
+
def generate_helper_files(automation, name, framework)
|
15
15
|
path = framework == 'rspec' ? "#{name}/helpers" : "#{name}/features/support/helpers"
|
16
16
|
generate_raider_helper(automation, framework, path)
|
17
17
|
generate_allure_helper(framework, path)
|
18
18
|
generate_pom_helper(path)
|
19
19
|
generate_spec_helper(automation, path) if framework == 'rspec'
|
20
|
-
|
21
|
-
generate_watir_helper(path)
|
22
|
-
generate_browser_helper(path)
|
23
|
-
else
|
24
|
-
generate_selenium_helper(path)
|
25
|
-
generate_driver_helper(path)
|
26
|
-
end
|
20
|
+
select_helpers(automation, path)
|
27
21
|
end
|
28
22
|
|
29
23
|
def generate_raider_helper(automation, framework, path)
|
@@ -55,8 +49,21 @@ module RubyRaider
|
|
55
49
|
generate_file('selenium_helper.rb', path, SeleniumHelperTemplate.new.parsed_body)
|
56
50
|
end
|
57
51
|
|
58
|
-
def generate_driver_helper(path)
|
59
|
-
generate_file('driver_helper.rb', path, DriverHelperTemplate.new.parsed_body)
|
52
|
+
def generate_driver_helper(automation, path)
|
53
|
+
generate_file('driver_helper.rb', path, DriverHelperTemplate.new(automation: automation).parsed_body)
|
54
|
+
end
|
55
|
+
|
56
|
+
def select_helpers(automation, path)
|
57
|
+
case automation
|
58
|
+
when 'watir'
|
59
|
+
generate_watir_helper(path)
|
60
|
+
generate_browser_helper(path)
|
61
|
+
when 'selenium'
|
62
|
+
generate_selenium_helper(path)
|
63
|
+
generate_driver_helper(automation, path)
|
64
|
+
else
|
65
|
+
generate_driver_helper(automation, path)
|
66
|
+
end
|
60
67
|
end
|
61
68
|
end
|
62
69
|
end
|
@@ -8,16 +8,17 @@ require_relative 'helpers_file_generator'
|
|
8
8
|
module RubyRaider
|
9
9
|
class RspecFileGenerator < FileGenerator
|
10
10
|
class << self
|
11
|
-
def generate_rspec_files(
|
12
|
-
AutomationFileGenerator.generate_automation_files(
|
13
|
-
CommonFileGenerator.generate_common_files(name, 'rspec')
|
14
|
-
HelpersFileGenerator.generate_helper_files(
|
11
|
+
def generate_rspec_files(automation, name)
|
12
|
+
AutomationFileGenerator.generate_automation_files(automation, name,'rspec')
|
13
|
+
CommonFileGenerator.generate_common_files(automation, name, 'rspec')
|
14
|
+
HelpersFileGenerator.generate_helper_files(automation, name, 'rspec')
|
15
15
|
generate_base_spec(name)
|
16
|
-
generate_example_spec(name)
|
16
|
+
generate_example_spec(automation, name)
|
17
17
|
end
|
18
18
|
|
19
|
-
def generate_example_spec(name)
|
20
|
-
generate_file('login_page_spec.rb', "#{name}/spec",
|
19
|
+
def generate_example_spec(automation, name)
|
20
|
+
generate_file('login_page_spec.rb', "#{name}/spec",
|
21
|
+
ExampleSpecTemplate.new(automation: automation).parsed_body)
|
21
22
|
end
|
22
23
|
|
23
24
|
def generate_base_spec(name)
|
@@ -4,41 +4,56 @@ require_relative '../generators/projects/rspec_project_generator'
|
|
4
4
|
|
5
5
|
module RubyRaider
|
6
6
|
class MenuGenerator
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
7
|
+
class << self
|
8
|
+
def generate_choice_menu(project_name)
|
9
|
+
@cli = HighLine.new
|
10
|
+
@cli.choose do |menu|
|
11
|
+
menu.prompt = 'Please select your automation framework'
|
12
|
+
menu.choice('Selenium') { choose_test_framework('selenium', project_name) }
|
13
|
+
menu.choice('Watir') { choose_test_framework('watir', project_name) }
|
14
|
+
menu.choice('Appium') { choose_test_framework('appium', project_name) }
|
15
|
+
menu.choice('Quit') { exit }
|
16
|
+
end
|
14
17
|
end
|
15
|
-
end
|
16
18
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
19
|
+
def choose_test_framework(automation, project_name)
|
20
|
+
system('clear') || system('cls')
|
21
|
+
sleep 0.3
|
22
|
+
automation = automation == 'appium' ? choose_mobile_platform : automation
|
23
|
+
framework = ''
|
24
|
+
@cli.choose do |menu|
|
25
|
+
menu.prompt = 'Please select your test framework'
|
26
|
+
menu.choice('Rspec') { framework = 'rspec'; set_framework(automation, framework, project_name) }
|
27
|
+
menu.choice('Cucumber') do
|
28
|
+
if %w[selenium watir].include? automation
|
29
|
+
framework = 'cucumber'
|
30
|
+
set_framework(automation, framework, project_name)
|
31
|
+
else
|
32
|
+
pp 'We will support iOS with cucumber on the next release'
|
33
|
+
exit
|
34
|
+
end
|
35
|
+
end
|
36
|
+
menu.choice('Quit') { exit }
|
27
37
|
end
|
28
|
-
|
29
|
-
|
30
|
-
|
38
|
+
@cli.say("You have chosen to use #{framework} with #{automation}")
|
39
|
+
end
|
40
|
+
|
41
|
+
def set_framework(automation, framework, project_name)
|
42
|
+
if framework == 'rspec'
|
43
|
+
RspecProjectGenerator.generate_rspec_project(automation, project_name)
|
44
|
+
else
|
45
|
+
CucumberProjectGenerator.generate_cucumber_project(automation, project_name)
|
31
46
|
end
|
32
|
-
menu.choice(:Quit, 'Exit program.') { exit }
|
33
47
|
end
|
34
|
-
cli.say("You have chosen to use #{framework} with #{automation}")
|
35
|
-
end
|
36
48
|
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
49
|
+
def choose_mobile_platform
|
50
|
+
@cli.choose do |menu|
|
51
|
+
menu.prompt = 'Please select your mobile platform'
|
52
|
+
menu.choice('iOS') { 'appium_ios' }
|
53
|
+
menu.choice('Android') { pp 'Android appium is coming soon. Thank you for the interest'; exit }
|
54
|
+
menu.choice('Cross Platform') { pp 'Cross platform appium is coming soon. Thank you for the interest'; exit }
|
55
|
+
menu.choice('Quit') { exit }
|
56
|
+
end
|
42
57
|
end
|
43
58
|
end
|
44
59
|
end
|
@@ -4,22 +4,30 @@ require_relative 'project_generator'
|
|
4
4
|
module RubyRaider
|
5
5
|
class CucumberProjectGenerator < ProjectGenerator
|
6
6
|
class << self
|
7
|
-
def generate_cucumber_project(
|
8
|
-
cucumber_folder_structure(name)
|
9
|
-
CucumberFileGenerator.generate_cucumber_files(
|
7
|
+
def generate_cucumber_project(automation, name)
|
8
|
+
cucumber_folder_structure(automation, name)
|
9
|
+
CucumberFileGenerator.generate_cucumber_files(automation, name)
|
10
10
|
ProjectGenerator.install_gems(name)
|
11
11
|
end
|
12
12
|
|
13
|
-
def cucumber_folder_structure(name)
|
14
|
-
|
15
|
-
|
13
|
+
def cucumber_folder_structure(automation, name)
|
14
|
+
create_project_folder(name)
|
15
|
+
create_base_folders(automation, name)
|
16
|
+
create_features_child_folders(name)
|
17
|
+
Dir.mkdir "#{name}/features/support/helpers"
|
18
|
+
create_po_child_folders(automation, name)
|
19
|
+
Dir.mkdir "#{name}/allure-results/screenshots"
|
20
|
+
end
|
21
|
+
|
22
|
+
def create_base_folders(automation, name)
|
23
|
+
folders = %w[features page_objects allure-results]
|
16
24
|
create_children_folders("#{name}", folders)
|
25
|
+
Dir.mkdir "#{name}/config" if %w[selenium watir].include?(automation)
|
26
|
+
end
|
27
|
+
|
28
|
+
def create_features_child_folders(name)
|
17
29
|
folders = %w[step_definitions support]
|
18
30
|
create_children_folders("#{name}/features", folders)
|
19
|
-
Dir.mkdir "#{name}/features/support/helpers"
|
20
|
-
folders = %w[abstract pages components]
|
21
|
-
create_children_folders("#{name}/page_objects", folders)
|
22
|
-
Dir.mkdir "#{name}/allure-results/screenshots"
|
23
31
|
end
|
24
32
|
end
|
25
33
|
end
|
@@ -8,6 +8,20 @@ module RubyRaider
|
|
8
8
|
def install_gems(name)
|
9
9
|
system "cd #{name} && gem install bundler && bundle install"
|
10
10
|
end
|
11
|
+
|
12
|
+
def create_project_folder(name)
|
13
|
+
Dir.mkdir name.to_s
|
14
|
+
end
|
15
|
+
|
16
|
+
def create_base_folders
|
17
|
+
raise 'Please specify the base folders for the projects'
|
18
|
+
end
|
19
|
+
|
20
|
+
def create_po_child_folders(automation, name)
|
21
|
+
folders = %w[pages abstract]
|
22
|
+
create_children_folders("#{name}/page_objects", folders)
|
23
|
+
Dir.mkdir "#{name}/page_objects/components" if %w[selenium watir].include?(automation)
|
24
|
+
end
|
11
25
|
end
|
12
26
|
end
|
13
27
|
end
|
@@ -4,18 +4,22 @@ require_relative '../files/rspec_file_generator'
|
|
4
4
|
module RubyRaider
|
5
5
|
class RspecProjectGenerator < ProjectGenerator
|
6
6
|
class << self
|
7
|
-
def generate_rspec_project(
|
8
|
-
rspec_folder_structure(name)
|
9
|
-
RspecFileGenerator.generate_rspec_files(
|
7
|
+
def generate_rspec_project(automation, name)
|
8
|
+
rspec_folder_structure(automation, name)
|
9
|
+
RspecFileGenerator.generate_rspec_files(automation, name)
|
10
10
|
ProjectGenerator.install_gems(name)
|
11
11
|
end
|
12
12
|
|
13
|
-
def rspec_folder_structure(name)
|
14
|
-
|
15
|
-
|
13
|
+
def rspec_folder_structure(automation, name)
|
14
|
+
create_project_folder(name)
|
15
|
+
create_base_folders(automation, name)
|
16
|
+
create_po_child_folders(automation, name)
|
17
|
+
end
|
18
|
+
|
19
|
+
def create_base_folders(automation, name)
|
20
|
+
folders = %w[data page_objects helpers spec]
|
16
21
|
create_children_folders(name, folders)
|
17
|
-
|
18
|
-
create_children_folders("#{name}/page_objects", pages)
|
22
|
+
Dir.mkdir "#{name}/config" if %w[selenium watir].include?(automation)
|
19
23
|
end
|
20
24
|
end
|
21
25
|
end
|
@@ -1,48 +1,82 @@
|
|
1
1
|
require_relative '../template'
|
2
2
|
|
3
3
|
class AbstractPageTemplate < Template
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
4
|
+
|
5
|
+
def raider
|
6
|
+
if @framework == 'rspec'
|
7
|
+
"require_relative '../../helpers/raider'\n"
|
8
|
+
else
|
9
|
+
"require_relative '../../features/support/helpers/raider'\n"
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
def helper_selector
|
14
|
+
if @automation == 'watir'
|
15
|
+
<<~EOF
|
16
|
+
|
17
|
+
def browser
|
18
|
+
Raider::BrowserHelper.browser
|
19
|
+
end
|
20
|
+
|
21
|
+
EOF
|
22
|
+
else
|
23
|
+
<<-EOF
|
24
|
+
|
25
|
+
def driver
|
9
26
|
Raider::DriverHelper.driver
|
10
|
-
end
|
27
|
+
end
|
28
|
+
|
29
|
+
|
30
|
+
EOF
|
31
|
+
end
|
32
|
+
end
|
11
33
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
else
|
16
|
-
"require_relative '../../features/support/helpers/raider'"
|
17
|
-
end
|
34
|
+
def visit
|
35
|
+
if %w[selenium watir].include?(@automation)
|
36
|
+
<<-EOF
|
18
37
|
|
19
|
-
<<~EOF
|
20
|
-
require 'rspec'
|
21
|
-
#{raider}
|
22
38
|
|
23
|
-
|
39
|
+
def visit(*page)
|
40
|
+
#{@automation == 'selenium' ? 'driver.navigate.to full_url(page.first)' : 'browser.goto full_url(page.first)'}
|
41
|
+
end
|
24
42
|
|
25
|
-
|
26
|
-
|
43
|
+
EOF
|
44
|
+
end
|
45
|
+
end
|
27
46
|
|
28
|
-
|
47
|
+
def url_methods
|
48
|
+
methods = <<-EOF
|
49
|
+
|
29
50
|
|
30
|
-
|
31
|
-
|
32
|
-
|
51
|
+
def full_url(*page)
|
52
|
+
"#\{base_url}#\{url(*page)}"
|
53
|
+
end
|
33
54
|
|
34
|
-
|
35
|
-
|
36
|
-
|
55
|
+
def base_url
|
56
|
+
'https://automationteststore.com/'
|
57
|
+
end
|
37
58
|
|
38
|
-
|
39
|
-
|
40
|
-
|
59
|
+
def url(_page)
|
60
|
+
raise 'Url must be defined on child pages'
|
61
|
+
end
|
62
|
+
EOF
|
63
|
+
|
64
|
+
|
65
|
+
methods if %w[selenium watir].include?(@automation)
|
66
|
+
end
|
67
|
+
|
68
|
+
def body
|
69
|
+
<<~EOF.gsub(/\n{2}\s{4}/, '')
|
70
|
+
require 'rspec'
|
71
|
+
#{raider}
|
72
|
+
class AbstractPage
|
41
73
|
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
74
|
+
include RSpec::Matchers
|
75
|
+
extend Raider::PomHelper
|
76
|
+
#{helper_selector}
|
77
|
+
#{visit}
|
78
|
+
#{url_methods}
|
79
|
+
end
|
46
80
|
EOF
|
47
81
|
end
|
48
82
|
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require_relative '../template'
|
2
|
+
|
3
|
+
class AppiumSettingsTemplate < Template
|
4
|
+
def body
|
5
|
+
<<~EOF
|
6
|
+
[caps]
|
7
|
+
platformName = "iOS"
|
8
|
+
platformVersion = "15.4"
|
9
|
+
deviceName = "iPhone SE (3rd generation)"
|
10
|
+
app = "TheApp.app"
|
11
|
+
|
12
|
+
[appium_lib]
|
13
|
+
server_url = "http://127.0.0.1:4723/wd/hub"
|
14
|
+
EOF
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require_relative '../template'
|
2
|
+
|
3
|
+
class ConfirmationPageTemplate < Template
|
4
|
+
def body
|
5
|
+
<<~EOF
|
6
|
+
require_relative '../abstract/abstract_page'
|
7
|
+
|
8
|
+
class ConfirmationPage < AbstractPage
|
9
|
+
|
10
|
+
#Values
|
11
|
+
|
12
|
+
def login_message
|
13
|
+
driver.wait { message_element }.text
|
14
|
+
end
|
15
|
+
|
16
|
+
private
|
17
|
+
|
18
|
+
# Elements
|
19
|
+
|
20
|
+
def message_element
|
21
|
+
driver.find_element(accessibility_id: 'You are logged in as alice')
|
22
|
+
end
|
23
|
+
end
|
24
|
+
EOF
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require_relative '../template'
|
2
|
+
|
3
|
+
class HomePageTemplate < Template
|
4
|
+
def body
|
5
|
+
<<~EOF
|
6
|
+
require_relative '../abstract/abstract_page'
|
7
|
+
|
8
|
+
class HomePage < AbstractPage
|
9
|
+
|
10
|
+
#Actions
|
11
|
+
|
12
|
+
def go_to_login
|
13
|
+
driver.wait { login_button_navigator }.click
|
14
|
+
end
|
15
|
+
|
16
|
+
private
|
17
|
+
|
18
|
+
# Elements
|
19
|
+
|
20
|
+
def login_button_navigator
|
21
|
+
driver.find_element(accessibility_id: 'Login Screen')
|
22
|
+
end
|
23
|
+
end
|
24
|
+
EOF
|
25
|
+
end
|
26
|
+
end
|