Ifd_Mobile 0.1.0 → 0.1.1
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.
- checksums.yaml +4 -4
- data/lib/Ifd_Mobile/lib_web.rb +70 -0
- data/lib/Ifd_Mobile/methods/core.rb +15 -7
- data/lib/Ifd_Mobile/version.rb +1 -1
- data/project/features/android/Android_test1.feature +15 -0
- data/project/features/android/Android_test2.feature +14 -0
- data/project/features/iOS/iOS_test.feature +9 -5
- data/project/features/step_definitions/lib_steps/PolyClaim_homepage.rb +3 -0
- data/project/features/step_definitions/lib_steps/PolyClaim_loginpage.rb +4 -0
- data/project/features/step_definitions/repositories/android_ob_test.rb +9 -2
- data/project/features/step_definitions/repositories/ios_ob_test.rb +4 -1
- data/project/features/support/env.rb +2 -0
- data/project/features/support/project_env.rb +3 -0
- metadata +7 -3
- data/project/features/android/Android_test.feature +0 -10
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 009b7991650ac5b0e386e51630aba56986be115f
|
|
4
|
+
data.tar.gz: 2ae91e49afa3dcd7f59f8e848943a21b869d11b6
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: cfe96a751128caed706923de5b7bbb92e72d5716f62dbc421596a7fbdf8c66348ae57b05cf3a40391a7dc9b7849202b43a07846472cf10e91468ea0fce15184a
|
|
7
|
+
data.tar.gz: a19d29115de18e8872d51395ab99856287da9c864635fe66589fbb5ee88b2295dd126825109e04583638480c078542708421f1d4334c96ace438b44b2bc513a1
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
|
|
2
|
+
Given(/^I have App running with appium$/) do
|
|
3
|
+
# Make sure you have started appium server
|
|
4
|
+
end
|
|
5
|
+
|
|
6
|
+
# Wait for the specific time
|
|
7
|
+
When /^I wait for (\d+) seconds$/ do |second|
|
|
8
|
+
sleep(second.to_i)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
And /^I input text "(.*)" on "(.*)"$/ do |text,object|
|
|
12
|
+
execute_settext(object,text)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
And /^I click on "(.*)"$/ do |object|
|
|
16
|
+
execute_click object
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
Then /^I verify property "(.*)" with "(.*)" has( | not)? value "(.*)"$/ do |object, property, negate, value|
|
|
20
|
+
sleep(0.5)
|
|
21
|
+
value = var_collect(value)
|
|
22
|
+
execute_checkproperty(object, property, negate, value)
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
Given /^I click on element with x: "(.*)", y: "(.*)"$/ do |x,y|
|
|
26
|
+
click_by_coordinate x,y
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
And /^I scroll the screen from startX (\d+) startY (\d+) to endX (\d+) endY (\d+) and millisecond timeout is (\d+)$/ do |startX, startY, endX, endY, timeout|
|
|
30
|
+
selenium.swipe(startX:startX, startY:startY, endX:endX,endY:endY, duration:timeout)
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
Given /^I get attribute of element "(.*)"$/ do |element|
|
|
34
|
+
found_element = find_object element
|
|
35
|
+
actual_value = found_element.attribute("name")
|
|
36
|
+
puts actual_value
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
And /^I rotate device to (landscape|portrait)$/ do |type|
|
|
40
|
+
case type.to_sym
|
|
41
|
+
when :landscape
|
|
42
|
+
$driver.rotate :landscape
|
|
43
|
+
when :portrait
|
|
44
|
+
$driver.rotate :portrait
|
|
45
|
+
else
|
|
46
|
+
raise "ERROR: *** unknown rotate type"
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
And /^I accept alert$/ do
|
|
51
|
+
selenium.alert_accept
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
And /^I dismiss alert$/ do
|
|
55
|
+
selenium.alert_dismiss
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
And /^I hide the keyboard$/ do
|
|
59
|
+
selenium.hide_keyboard
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
And /^I delete an character$/ do
|
|
63
|
+
system('adb shell input keyevent 67')
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
And /^I test "(.*)"$/ do |element|
|
|
67
|
+
found_element = find_object element
|
|
68
|
+
actual_value = found_element.attribute("value")
|
|
69
|
+
puts actual_value
|
|
70
|
+
end
|
|
@@ -10,7 +10,7 @@ def put_log str
|
|
|
10
10
|
end
|
|
11
11
|
|
|
12
12
|
def find_object string_object
|
|
13
|
-
startTime = Time.new.to_i
|
|
13
|
+
# startTime = Time.new.to_i
|
|
14
14
|
string_object = string_object.gsub(/"/, "'")
|
|
15
15
|
# puts string_object
|
|
16
16
|
locator_matching = /(.*?)(\{.*?\})/.match(string_object)
|
|
@@ -49,7 +49,7 @@ def find_object string_object
|
|
|
49
49
|
}
|
|
50
50
|
end
|
|
51
51
|
# put_log string_object
|
|
52
|
-
put_log "\nattribute: #{attribute}"
|
|
52
|
+
# put_log "\nattribute: #{attribute}"
|
|
53
53
|
|
|
54
54
|
attribute.each { |key, value|
|
|
55
55
|
$element_tag = key
|
|
@@ -61,11 +61,13 @@ end
|
|
|
61
61
|
def execute_click element
|
|
62
62
|
found_element = find_object element
|
|
63
63
|
if found_element != nil
|
|
64
|
+
startTime = Time.new.to_i
|
|
64
65
|
begin
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
66
|
+
sleep(1)
|
|
67
|
+
currentTime= Time.new.to_i
|
|
68
|
+
end while (currentTime - startTime) < $_CONFIG['Wait Time']
|
|
69
|
+
# selenium.execute_script('mobile: scroll', found_element)
|
|
70
|
+
found_element.click
|
|
69
71
|
else
|
|
70
72
|
put_log "\nERROR: *** not found object: #{element}"
|
|
71
73
|
end
|
|
@@ -75,6 +77,8 @@ def execute_settext element, text
|
|
|
75
77
|
found_element = find_object element
|
|
76
78
|
if found_element != nil
|
|
77
79
|
begin
|
|
80
|
+
sleep(1)
|
|
81
|
+
# found_element.long_press_keycode(46)
|
|
78
82
|
found_element.send_keys(text)
|
|
79
83
|
rescue StandardError => myStandardError
|
|
80
84
|
put_log "\nERROR: *** #{myStandardError}"
|
|
@@ -125,4 +129,8 @@ def execute_checkproperty element, property, negate, value
|
|
|
125
129
|
elsif expect(check).to eq true
|
|
126
130
|
end
|
|
127
131
|
end
|
|
128
|
-
end
|
|
132
|
+
end
|
|
133
|
+
|
|
134
|
+
def click_by_coordinate x, y
|
|
135
|
+
selenium.execute_script 'mobile: tap', :x => x, :y => y
|
|
136
|
+
end
|
data/lib/Ifd_Mobile/version.rb
CHANGED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
@android_demo1
|
|
2
|
+
Feature: Demo
|
|
3
|
+
|
|
4
|
+
As a Android user
|
|
5
|
+
I want to PolyClaim app
|
|
6
|
+
So that I can make the test for Demo section
|
|
7
|
+
|
|
8
|
+
Scenario: Navigate
|
|
9
|
+
Given I have App running with appium
|
|
10
|
+
When I click on Sign In button
|
|
11
|
+
# And I input text "11122233" on "poly_DigiD"
|
|
12
|
+
# And I input text "12345" on "poly_Password"
|
|
13
|
+
# And I click on Login
|
|
14
|
+
# Then I verify property "poly_ErrorMessage" with "name" has value "Invalid credentials."
|
|
15
|
+
# * I test "poly_DigiD"
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
@android_demo2
|
|
2
|
+
Feature: Demo
|
|
3
|
+
|
|
4
|
+
As a Android user
|
|
5
|
+
I want to PolyClaim app
|
|
6
|
+
So that I can make the test for Demo section
|
|
7
|
+
|
|
8
|
+
Scenario: Navigate
|
|
9
|
+
Given I have App running with appium
|
|
10
|
+
When I click on Sign In button
|
|
11
|
+
And I input text "111222333" on "poly_DigiD"
|
|
12
|
+
And I input text "12345" on "poly_Password"
|
|
13
|
+
And I click on Login
|
|
14
|
+
Then I verify property "poly_Overview_header" with "name" has value "Declaration overview"
|
|
@@ -1,11 +1,15 @@
|
|
|
1
|
-
Feature:
|
|
1
|
+
Feature: Demo
|
|
2
2
|
|
|
3
3
|
As a iPhone user
|
|
4
4
|
I want to Demo app
|
|
5
5
|
So that I can make the test for Demo section
|
|
6
|
-
|
|
6
|
+
@ios_demo
|
|
7
7
|
Scenario: Navigate
|
|
8
8
|
Given I have App running with appium
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
When I input text "4" on "textbox1"
|
|
10
|
+
And I input text "4" on "textbox2"
|
|
11
|
+
And I click on "button_sum"
|
|
12
|
+
Then I verify property "result" with "value" has value "8"
|
|
13
|
+
When I click on "show_alert"
|
|
14
|
+
Then I verify property "alert title" with "name" has value "Cool title"
|
|
15
|
+
And I accept alert
|
|
@@ -1,2 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
$_RP_OBJECT['
|
|
1
|
+
# All elements on Welcome page
|
|
2
|
+
$_RP_OBJECT['poly_SignIn_home'] = {xpath: '//android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.view.View[1]/android.view.View[5]'}
|
|
3
|
+
#All elements on Login page
|
|
4
|
+
$_RP_OBJECT['poly_DigiD'] = {xpath: '//android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.view.View[1]/android.view.View[6]/android.view.View[2]/android.widget.EditText[1]'}
|
|
5
|
+
$_RP_OBJECT['poly_Password'] = {xpath: '//android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.view.View[1]/android.view.View[7]/android.view.View[2]/android.widget.EditText[1]'}
|
|
6
|
+
$_RP_OBJECT['poly_Login'] = {xpath: '//android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.view.View[1]/android.widget.Button[1]'}
|
|
7
|
+
$_RP_OBJECT['poly_ErrorMessage'] = {xpath: '//android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.view.View[1]/android.view.View[10]'}
|
|
8
|
+
#All elements on Declaration Overview page
|
|
9
|
+
$_RP_OBJECT['poly_Overview_header'] = {xpath: '//android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.view.View[1]/android.view.View[5]'}
|
|
@@ -1,3 +1,6 @@
|
|
|
1
1
|
$_RP_OBJECT['textbox1'] = {name: 'TextField1'}
|
|
2
|
+
$_RP_OBJECT['textbox2'] = {name: 'TextField2'}
|
|
2
3
|
$_RP_OBJECT['button_sum'] = {name: 'ComputeSumButton'}
|
|
3
|
-
$_RP_OBJECT['result'] = {name: 'Answer'}
|
|
4
|
+
$_RP_OBJECT['result'] = {name: 'Answer'}
|
|
5
|
+
$_RP_OBJECT['show_alert'] = {name: 'show alert'}
|
|
6
|
+
$_RP_OBJECT['alert title'] = {name: 'Cool title'}
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: Ifd_Mobile
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Anh Pham
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2015-10-
|
|
11
|
+
date: 2015-10-23 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: cucumber
|
|
@@ -78,6 +78,7 @@ executables:
|
|
|
78
78
|
extensions: []
|
|
79
79
|
extra_rdoc_files: []
|
|
80
80
|
files:
|
|
81
|
+
- lib/Ifd_Mobile/lib_web.rb
|
|
81
82
|
- lib/Ifd_Mobile/methods/core.rb
|
|
82
83
|
- lib/Ifd_Mobile/methods/IFD_Assertion.rb
|
|
83
84
|
- lib/Ifd_Mobile/methods/lib_var.rb
|
|
@@ -119,8 +120,11 @@ files:
|
|
|
119
120
|
- project/apps/TestApp/TestApp.xcodeproj/project.xcworkspace/xcuserdata/anhpham.xcuserdatad/UserInterfaceState.xcuserstate
|
|
120
121
|
- project/apps/TestApp/TestApp.xcodeproj/xcuserdata/anhpham.xcuserdatad/xcschemes/TestApp.xcscheme
|
|
121
122
|
- project/apps/TestApp/TestApp.xcodeproj/xcuserdata/anhpham.xcuserdatad/xcschemes/xcschememanagement.plist
|
|
122
|
-
- project/features/android/
|
|
123
|
+
- project/features/android/Android_test1.feature
|
|
124
|
+
- project/features/android/Android_test2.feature
|
|
123
125
|
- project/features/iOS/iOS_test.feature
|
|
126
|
+
- project/features/step_definitions/lib_steps/PolyClaim_homepage.rb
|
|
127
|
+
- project/features/step_definitions/lib_steps/PolyClaim_loginpage.rb
|
|
124
128
|
- project/features/step_definitions/repositories/android_ob_test.rb
|
|
125
129
|
- project/features/step_definitions/repositories/ios_ob_test.rb
|
|
126
130
|
- project/features/support/env.rb
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
Feature: Notes
|
|
2
|
-
|
|
3
|
-
As a Android user
|
|
4
|
-
I want to Demo app
|
|
5
|
-
So that I can make the test for Demo section
|
|
6
|
-
|
|
7
|
-
Scenario: Navigate
|
|
8
|
-
Given I have App running with appium
|
|
9
|
-
* I click on "display_text_view"
|
|
10
|
-
* I verify property "text_view" with "text" has value "Text is sometimes displayed"
|