screen-object 1.0.0

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 (50) hide show
  1. checksums.yaml +7 -0
  2. data/.rspec +2 -0
  3. data/ChangeLog +7 -0
  4. data/Gemfile +9 -0
  5. data/Rakefile +28 -0
  6. data/cucumber.yml +4 -0
  7. data/features/button.feature +28 -0
  8. data/features/checkbox.feature +11 -0
  9. data/features/navigation.feature +10 -0
  10. data/features/step_definitions/button_step.rb +46 -0
  11. data/features/step_definitions/checkbox_step.rb +12 -0
  12. data/features/step_definitions/navigation_steps.rb +14 -0
  13. data/features/step_definitions/table_step.rb +5 -0
  14. data/features/step_definitions/textfield_step.rb +5 -0
  15. data/features/support/appium.txt +9 -0
  16. data/features/support/appium_ios.txt +11 -0
  17. data/features/support/env.rb +30 -0
  18. data/features/support/screen.rb +79 -0
  19. data/features/support/screens/buttons_screen.rb +8 -0
  20. data/features/support/screens/landing_screen.rb +6 -0
  21. data/features/support/screens/main_screen.rb +6 -0
  22. data/features/table.feature +11 -0
  23. data/features/textfield.feature +10 -0
  24. data/lib/screen-object.rb +161 -0
  25. data/lib/screen-object/.DS_Store +0 -0
  26. data/lib/screen-object/accessors.rb +457 -0
  27. data/lib/screen-object/accessors/button.rb +36 -0
  28. data/lib/screen-object/accessors/checkbox.rb +38 -0
  29. data/lib/screen-object/accessors/element.rb +144 -0
  30. data/lib/screen-object/accessors/image.rb +25 -0
  31. data/lib/screen-object/accessors/table.rb +26 -0
  32. data/lib/screen-object/accessors/text.rb +46 -0
  33. data/lib/screen-object/accessors/textfield.rb +41 -0
  34. data/lib/screen-object/appium_server.rb +58 -0
  35. data/lib/screen-object/elements.rb +21 -0
  36. data/lib/screen-object/load_appium.rb +31 -0
  37. data/lib/screen-object/screen_factory.rb +43 -0
  38. data/lib/screen-object/version.rb +4 -0
  39. data/screen-object.gemspec +28 -0
  40. data/spec/integration/appium_server_spec.rb +24 -0
  41. data/spec/lib/appium_server_spec.rb +59 -0
  42. data/spec/lib/screen_object_spec.rb +37 -0
  43. data/spec/screen-object/button_spec.rb +25 -0
  44. data/spec/screen-object/checkbox_spec.rb +35 -0
  45. data/spec/screen-object/element_spec.rb +205 -0
  46. data/spec/screen-object/image_spec.rb +21 -0
  47. data/spec/screen-object/text_field_spec.rb +37 -0
  48. data/spec/screen-object/text_spec.rb +29 -0
  49. data/spec/spec_helper.rb +29 -0
  50. metadata +201 -0
@@ -0,0 +1,21 @@
1
+ require_relative '../spec_helper'
2
+
3
+
4
+ describe "Interface" do
5
+
6
+ locator = "name~dummy"
7
+ let(:selenium_driver) {double('')}
8
+ let(:image) {ScreenObject::AppElements::Image.new(locator)}
9
+
10
+ context "interaction with click method" do
11
+ it "should click on element" do
12
+ expect(image).to receive(:element).and_return(selenium_driver)
13
+ expect(selenium_driver).to receive(:click).and_return(true)
14
+ expect(image.click).to be true
15
+ end
16
+
17
+ end
18
+ end
19
+
20
+
21
+
@@ -0,0 +1,37 @@
1
+ require_relative '../spec_helper'
2
+
3
+ describe "Interface" do
4
+
5
+
6
+ locator = "name~dummy"
7
+ let(:selenium_driver) {double('')}
8
+ let(:text_field) {ScreenObject::AppElements::TextField.new(locator)}
9
+
10
+ context "interaction with text=(text) method" do
11
+ it "should enter text into text field." do
12
+ expect(text_field).to receive(:element).and_return(selenium_driver)
13
+ expect(selenium_driver).to receive(:send_keys).with("text").and_return("text")
14
+ expect(text_field.text = "text").to eq "text"
15
+ end
16
+
17
+ end
18
+
19
+ context "interaction with text method" do
20
+ it "should retrive text from text" do
21
+ expect(text_field).to receive(:element).and_return(selenium_driver)
22
+ expect(selenium_driver).to receive(:text).and_return(true)
23
+ expect(text_field.text).to be true
24
+ end
25
+
26
+ end
27
+
28
+ context "interaction with clear method" do
29
+ it "should clear the text field." do
30
+ expect(text_field).to receive(:element).and_return(selenium_driver)
31
+ expect(selenium_driver).to receive(:clear).and_return(true)
32
+ expect(text_field.clear).to be true
33
+ end
34
+
35
+ end
36
+
37
+ end
@@ -0,0 +1,29 @@
1
+ require_relative '../spec_helper'
2
+
3
+ describe "Interface" do
4
+
5
+ locator = "name~dummy"
6
+ let(:selenium_driver) {double('')}
7
+ let(:text) {ScreenObject::AppElements::TextField.new(locator)}
8
+
9
+
10
+ context "interaction with clear method" do
11
+ it "should clear the text field." do
12
+ expect(text).to receive(:element).and_return(selenium_driver)
13
+ expect(selenium_driver).to receive(:text).and_return("text")
14
+ expect(text.text).to eq "text"
15
+
16
+ end
17
+
18
+ end
19
+
20
+ context "interaction with clear method" do
21
+ it "should clear the text field." do
22
+ expect(text).to receive(:dynamic_xpath).with("dynamic_text").and_return(selenium_driver)
23
+ expect(selenium_driver).to receive(:displayed?).and_return(selenium_driver).and_return(true)
24
+ expect(text.dynamic_text_exists?("dynamic_text")).to eq true
25
+ end
26
+
27
+ end
28
+
29
+ end
@@ -0,0 +1,29 @@
1
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
2
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
3
+
4
+ require 'rspec'
5
+ require 'screen-object'
6
+
7
+ RSpec::Matchers.define :be_running_process do
8
+ match do |child_process|
9
+ begin
10
+ Process.kill(0,child_process.pid) == 1
11
+ rescue Exception => msg
12
+ false
13
+ end
14
+
15
+ end
16
+
17
+ failure_message do |child_process|
18
+ "Expected the provided process to be running."
19
+
20
+ end
21
+
22
+ failure_message_when_negated do |child_process|
23
+ "Expected the provided process to not be running."
24
+
25
+ end
26
+
27
+ end
28
+
29
+
metadata ADDED
@@ -0,0 +1,201 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: screen-object
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Sreepad Bhagwat
8
+ - Shailendra Jain
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2016-08-18 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: appium_lib
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - "~>"
19
+ - !ruby/object:Gem::Version
20
+ version: 8.0.2
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - "~>"
26
+ - !ruby/object:Gem::Version
27
+ version: 8.0.2
28
+ - !ruby/object:Gem::Dependency
29
+ name: page_navigation
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - "~>"
33
+ - !ruby/object:Gem::Version
34
+ version: '0.9'
35
+ type: :runtime
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - "~>"
40
+ - !ruby/object:Gem::Version
41
+ version: '0.9'
42
+ - !ruby/object:Gem::Dependency
43
+ name: childprocess
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - "~>"
47
+ - !ruby/object:Gem::Version
48
+ version: '0.5'
49
+ type: :runtime
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - "~>"
54
+ - !ruby/object:Gem::Version
55
+ version: '0.5'
56
+ - !ruby/object:Gem::Dependency
57
+ name: cucumber
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - "~>"
61
+ - !ruby/object:Gem::Version
62
+ version: '1.3'
63
+ - - ">="
64
+ - !ruby/object:Gem::Version
65
+ version: 1.3.0
66
+ type: :development
67
+ prerelease: false
68
+ version_requirements: !ruby/object:Gem::Requirement
69
+ requirements:
70
+ - - "~>"
71
+ - !ruby/object:Gem::Version
72
+ version: '1.3'
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: 1.3.0
76
+ - !ruby/object:Gem::Dependency
77
+ name: rspec
78
+ requirement: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '3.1'
83
+ - - ">="
84
+ - !ruby/object:Gem::Version
85
+ version: 3.1.0
86
+ type: :development
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ requirements:
90
+ - - "~>"
91
+ - !ruby/object:Gem::Version
92
+ version: '3.1'
93
+ - - ">="
94
+ - !ruby/object:Gem::Version
95
+ version: 3.1.0
96
+ description: Page Object like DSL for testing mobile application
97
+ email:
98
+ executables: []
99
+ extensions: []
100
+ extra_rdoc_files: []
101
+ files:
102
+ - ".rspec"
103
+ - ChangeLog
104
+ - Gemfile
105
+ - Rakefile
106
+ - cucumber.yml
107
+ - features/button.feature
108
+ - features/checkbox.feature
109
+ - features/navigation.feature
110
+ - features/step_definitions/button_step.rb
111
+ - features/step_definitions/checkbox_step.rb
112
+ - features/step_definitions/navigation_steps.rb
113
+ - features/step_definitions/table_step.rb
114
+ - features/step_definitions/textfield_step.rb
115
+ - features/support/appium.txt
116
+ - features/support/appium_ios.txt
117
+ - features/support/env.rb
118
+ - features/support/screen.rb
119
+ - features/support/screens/buttons_screen.rb
120
+ - features/support/screens/landing_screen.rb
121
+ - features/support/screens/main_screen.rb
122
+ - features/table.feature
123
+ - features/textfield.feature
124
+ - lib/screen-object.rb
125
+ - lib/screen-object/.DS_Store
126
+ - lib/screen-object/accessors.rb
127
+ - lib/screen-object/accessors/button.rb
128
+ - lib/screen-object/accessors/checkbox.rb
129
+ - lib/screen-object/accessors/element.rb
130
+ - lib/screen-object/accessors/image.rb
131
+ - lib/screen-object/accessors/table.rb
132
+ - lib/screen-object/accessors/text.rb
133
+ - lib/screen-object/accessors/textfield.rb
134
+ - lib/screen-object/appium_server.rb
135
+ - lib/screen-object/elements.rb
136
+ - lib/screen-object/load_appium.rb
137
+ - lib/screen-object/screen_factory.rb
138
+ - lib/screen-object/version.rb
139
+ - screen-object.gemspec
140
+ - spec/integration/appium_server_spec.rb
141
+ - spec/lib/appium_server_spec.rb
142
+ - spec/lib/screen_object_spec.rb
143
+ - spec/screen-object/button_spec.rb
144
+ - spec/screen-object/checkbox_spec.rb
145
+ - spec/screen-object/element_spec.rb
146
+ - spec/screen-object/image_spec.rb
147
+ - spec/screen-object/text_field_spec.rb
148
+ - spec/screen-object/text_spec.rb
149
+ - spec/spec_helper.rb
150
+ homepage: https://github.kdc.capitalone.com/mobius/screen-object
151
+ licenses:
152
+ - http://www.apache.org/licenses/LICENSE-2.0.txt
153
+ metadata: {}
154
+ post_install_message:
155
+ rdoc_options: []
156
+ require_paths:
157
+ - lib
158
+ required_ruby_version: !ruby/object:Gem::Requirement
159
+ requirements:
160
+ - - ">="
161
+ - !ruby/object:Gem::Version
162
+ version: '0'
163
+ required_rubygems_version: !ruby/object:Gem::Requirement
164
+ requirements:
165
+ - - ">="
166
+ - !ruby/object:Gem::Version
167
+ version: '0'
168
+ requirements: []
169
+ rubyforge_project:
170
+ rubygems_version: 2.4.6
171
+ signing_key:
172
+ specification_version: 4
173
+ summary: Page Object like DSL for testing mobile application
174
+ test_files:
175
+ - features/button.feature
176
+ - features/checkbox.feature
177
+ - features/navigation.feature
178
+ - features/step_definitions/button_step.rb
179
+ - features/step_definitions/checkbox_step.rb
180
+ - features/step_definitions/navigation_steps.rb
181
+ - features/step_definitions/table_step.rb
182
+ - features/step_definitions/textfield_step.rb
183
+ - features/support/appium.txt
184
+ - features/support/appium_ios.txt
185
+ - features/support/env.rb
186
+ - features/support/screen.rb
187
+ - features/support/screens/buttons_screen.rb
188
+ - features/support/screens/landing_screen.rb
189
+ - features/support/screens/main_screen.rb
190
+ - features/table.feature
191
+ - features/textfield.feature
192
+ - spec/integration/appium_server_spec.rb
193
+ - spec/lib/appium_server_spec.rb
194
+ - spec/lib/screen_object_spec.rb
195
+ - spec/screen-object/button_spec.rb
196
+ - spec/screen-object/checkbox_spec.rb
197
+ - spec/screen-object/element_spec.rb
198
+ - spec/screen-object/image_spec.rb
199
+ - spec/screen-object/text_field_spec.rb
200
+ - spec/screen-object/text_spec.rb
201
+ - spec/spec_helper.rb