Ifd_Mobile 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- 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"
|