honeydew 0.1.4

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 (72) hide show
  1. data/.gitignore +21 -0
  2. data/.rspec +2 -0
  3. data/Gemfile +4 -0
  4. data/LICENSE.txt +22 -0
  5. data/README.md +29 -0
  6. data/Rakefile +17 -0
  7. data/android-server/.gitignore +4 -0
  8. data/android-server/pom.xml +215 -0
  9. data/android-server/repo/com/google/android/uiautomator/4.1.1.4/_maven.repositories +4 -0
  10. data/android-server/repo/com/google/android/uiautomator/4.1.1.4/uiautomator-4.1.1.4.jar +0 -0
  11. data/android-server/repo/com/google/android/uiautomator/4.1.1.4/uiautomator-4.1.1.4.pom +9 -0
  12. data/android-server/repo/com/jayway/maven/plugins/android/generation2/android-maven-plugin/3.5.2-SNAPSHOT/android-maven-plugin-3.5.2-SNAPSHOT.jar +0 -0
  13. data/android-server/repo/com/jayway/maven/plugins/android/generation2/android-maven-plugin/3.5.2-SNAPSHOT/android-maven-plugin-3.5.2-SNAPSHOT.pom +56 -0
  14. data/android-server/repo/com/jayway/maven/plugins/android/generation2/android-maven-plugin/3.5.2-SNAPSHOT/maven-metadata-local.xml +24 -0
  15. data/android-server/repo/commons-jxpath/commons-jxpath/1.4-SNAPSHOT/_maven.repositories +4 -0
  16. data/android-server/repo/commons-jxpath/commons-jxpath/1.4-SNAPSHOT/commons-jxpath-1.4-SNAPSHOT.jar +0 -0
  17. data/android-server/repo/commons-jxpath/commons-jxpath/1.4-SNAPSHOT/commons-jxpath-1.4-SNAPSHOT.pom +9 -0
  18. data/android-server/repo/commons-jxpath/commons-jxpath/1.4-SNAPSHOT/maven-metadata-local.xml +24 -0
  19. data/android-server/repo/commons-jxpath/commons-jxpath/maven-metadata-local.xml +11 -0
  20. data/android-server/src/main/java/com/uiautomator_cucumber/android_server/Action.java +65 -0
  21. data/android-server/src/main/java/com/uiautomator_cucumber/android_server/ActionsExecutor.java +73 -0
  22. data/android-server/src/main/java/com/uiautomator_cucumber/android_server/Command.java +16 -0
  23. data/android-server/src/main/java/com/uiautomator_cucumber/android_server/Result.java +36 -0
  24. data/android-server/src/main/java/com/uiautomator_cucumber/android_server/TestRunner.java +26 -0
  25. data/android-server/src/main/java/com/uiautomator_cucumber/android_server/actions/Click.java +20 -0
  26. data/android-server/src/main/java/com/uiautomator_cucumber/android_server/actions/ClickAndWaitForNewWindow.java +20 -0
  27. data/android-server/src/main/java/com/uiautomator_cucumber/android_server/actions/DumpWindowHierarchy.java +28 -0
  28. data/android-server/src/main/java/com/uiautomator_cucumber/android_server/actions/HasSettingsMenuItem.java +23 -0
  29. data/android-server/src/main/java/com/uiautomator_cucumber/android_server/actions/InspectOptionInSettingsMenu.java +32 -0
  30. data/android-server/src/main/java/com/uiautomator_cucumber/android_server/actions/IsButtonPresent.java +23 -0
  31. data/android-server/src/main/java/com/uiautomator_cucumber/android_server/actions/IsChildCountEqualTo.java +26 -0
  32. data/android-server/src/main/java/com/uiautomator_cucumber/android_server/actions/IsElementWithNestedTextPresent.java +24 -0
  33. data/android-server/src/main/java/com/uiautomator_cucumber/android_server/actions/IsOptionInSettingsMenuDisabled.java +9 -0
  34. data/android-server/src/main/java/com/uiautomator_cucumber/android_server/actions/IsOptionInSettingsMenuEnabled.java +9 -0
  35. data/android-server/src/main/java/com/uiautomator_cucumber/android_server/actions/IsTextPresent.java +19 -0
  36. data/android-server/src/main/java/com/uiautomator_cucumber/android_server/actions/LaunchApp.java +25 -0
  37. data/android-server/src/main/java/com/uiautomator_cucumber/android_server/actions/LaunchHome.java +19 -0
  38. data/android-server/src/main/java/com/uiautomator_cucumber/android_server/actions/LongClick.java +20 -0
  39. data/android-server/src/main/java/com/uiautomator_cucumber/android_server/actions/PressBack.java +19 -0
  40. data/android-server/src/main/java/com/uiautomator_cucumber/android_server/actions/PressEnter.java +19 -0
  41. data/android-server/src/main/java/com/uiautomator_cucumber/android_server/actions/SelectFromAppsList.java +24 -0
  42. data/android-server/src/main/java/com/uiautomator_cucumber/android_server/actions/SelectMenuInSettings.java +22 -0
  43. data/android-server/src/main/java/com/uiautomator_cucumber/android_server/actions/SetText.java +27 -0
  44. data/android-server/src/main/java/com/uiautomator_cucumber/android_server/actions/SetTextByIndex.java +25 -0
  45. data/android-server/src/main/java/com/uiautomator_cucumber/android_server/actions/SetTextByLabel.java +28 -0
  46. data/android-server/src/main/java/com/uiautomator_cucumber/android_server/actions/Unlock.java +31 -0
  47. data/android-server/src/main/java/com/uiautomator_cucumber/android_server/actions/WakeUp.java +24 -0
  48. data/android-server/src/main/java/com/uiautomator_cucumber/android_server/httpd/NanoHTTPD.java +1100 -0
  49. data/android-server/src/main/java/com/uiautomator_cucumber/android_server/httpd/RemoteCommandReceiver.java +64 -0
  50. data/example/Gemfile +5 -0
  51. data/example/Rakefile +9 -0
  52. data/example/features/example.feature +10 -0
  53. data/example/features/step_definitions/honeydew_steps.rb +1 -0
  54. data/example/features/support/hooks.rb +4 -0
  55. data/honeydew.gemspec +28 -0
  56. data/honeydew.iml +28 -0
  57. data/lib/honeydew/cucumber.rb +4 -0
  58. data/lib/honeydew/device.rb +79 -0
  59. data/lib/honeydew/device_actions.rb +151 -0
  60. data/lib/honeydew/device_commands.rb +84 -0
  61. data/lib/honeydew/device_matchers.rb +52 -0
  62. data/lib/honeydew/dsl.rb +9 -0
  63. data/lib/honeydew/hooks.rb +0 -0
  64. data/lib/honeydew/step_definitions.rb +75 -0
  65. data/lib/honeydew/version.rb +3 -0
  66. data/lib/honeydew.rb +72 -0
  67. data/lib/tasks/honeydew.rake +7 -0
  68. data/spec/honeydew/device_matchers_spec.rb +58 -0
  69. data/spec/honeydew/device_spec.rb +66 -0
  70. data/spec/spec_helper.rb +39 -0
  71. data/todo.md +9 -0
  72. metadata +232 -0
data/lib/honeydew.rb ADDED
@@ -0,0 +1,72 @@
1
+ require 'bundler'
2
+ require 'bundler/setup'
3
+ require 'restclient'
4
+ require 'active_support/core_ext'
5
+
6
+ require "honeydew/version"
7
+ require "honeydew/device"
8
+
9
+ module Honeydew
10
+ class Configuration
11
+ attr_accessor :port, :timeout
12
+
13
+ def initialize
14
+ @port = 7120
15
+ @timeout = 5.seconds
16
+ end
17
+
18
+ def obtain_new_port
19
+ @port.tap { @port += 1 }
20
+ end
21
+ end
22
+
23
+ class <<self
24
+ attr_accessor :config
25
+
26
+ def config
27
+ return @config if @config
28
+ configure
29
+ @config
30
+ end
31
+
32
+ def configure
33
+ @config ||= Configuration.new
34
+ yield(@config) if block_given?
35
+ end
36
+
37
+ def attached_devices
38
+ `adb devices`.split("\n").drop(1).collect {|line| line.split[0].chomp}
39
+ end
40
+
41
+ def default_device_serial
42
+ attached_devices.first
43
+ end
44
+
45
+ def default_device
46
+ @default_device ||= device[default_device_serial]
47
+ end
48
+
49
+ def current_device
50
+ @current_device ||= default_device
51
+ end
52
+
53
+ def using_device(serial, &block)
54
+ original_device = current_device
55
+ use_device(serial).tap do |device|
56
+ device.instance_eval(&block) if block_given?
57
+ end
58
+ ensure
59
+ @current_device = original_device
60
+ end
61
+
62
+ def use_device(serial)
63
+ @current_device = device[serial]
64
+ end
65
+
66
+ def device
67
+ @devices ||= Hash.new do |hash, serial|
68
+ hash[serial] = Device.new(serial) if attached_devices.include?(serial)
69
+ end
70
+ end
71
+ end
72
+ end
@@ -0,0 +1,7 @@
1
+ require 'honeydew'
2
+ require 'cucumber/rake/task'
3
+
4
+ Cucumber::Rake::Task.new(:honeydew, 'Run honeydew cucumber tests') do |t|
5
+ t.profile = 'honeydew'
6
+ t.cucumber_opts = "--tags @honeydew"
7
+ end
@@ -0,0 +1,58 @@
1
+ require 'spec_helper'
2
+
3
+ describe Honeydew::DeviceMatchers do
4
+
5
+ class DeviceTest
6
+ include Honeydew::DeviceMatchers
7
+ def perform_action; end
8
+ end
9
+
10
+ let (:device) { DeviceTest.new }
11
+
12
+ describe "#has_textview_text" do
13
+ let (:text) { "some text" }
14
+
15
+ it "should perform action for is_text_present" do
16
+ device.should_receive(:perform_action).with(hash_including({action: "is_text_present"}))
17
+
18
+ device.has_textview_text? text
19
+ end
20
+
21
+ it "should retry for a default timeout" do
22
+ device.should_receive(:perform_action).with(hash_including({retry_until: Honeydew.config.timeout}))
23
+
24
+ device.has_textview_text? text
25
+ end
26
+
27
+ it "should pass the arguments for the text view" do
28
+ device.should_receive(:perform_action).with(hash_including({arguments: { text: text, type: 'TextView'}}))
29
+
30
+ device.has_textview_text? text
31
+ end
32
+
33
+ end
34
+
35
+ describe "#has_textview_with_text_and_description" do
36
+ let (:text) { "some text" }
37
+ let (:description) { "some description" }
38
+
39
+ it "should perform action for is_text_present" do
40
+ device.should_receive(:perform_action).with(hash_including({action: "is_text_present"}))
41
+
42
+ device.has_textview_with_text_and_description? text, description
43
+ end
44
+
45
+ it "should retry for a default timeout" do
46
+ device.should_receive(:perform_action).with(hash_including({retry_until: Honeydew.config.timeout}))
47
+
48
+ device.has_textview_with_text_and_description? text, description
49
+ end
50
+
51
+ it "should pass the arguments for the text view" do
52
+ device.should_receive(:perform_action).with(hash_including({arguments: { text: text, description: description, type: 'TextView'}}))
53
+
54
+ device.has_textview_with_text_and_description? text, description
55
+ end
56
+
57
+ end
58
+ end
@@ -0,0 +1,66 @@
1
+ require 'spec_helper'
2
+
3
+ describe Honeydew::Device, :silence_puts do
4
+ let(:response) { "{ \"success\": true }" }
5
+ let(:command) { {"action" => '', "arguments" => {}} }
6
+ let(:serial) { "ABC123DEF" }
7
+
8
+ before do
9
+ @device = Honeydew::Device.new serial
10
+ @device_end_point = "http://127.0.0.1:#{@device.port}"
11
+ RestClient.stub(:get).with(@device_end_point, params: { "command" => command}).and_return(response)
12
+ end
13
+
14
+ describe "contains_textview_text?" do
15
+ let(:text) { "Ok" }
16
+ let(:command) { {"action" => 'is_text_present', "arguments" => {"text" => text, "type" => 'TextView'}} }
17
+
18
+ it "should make the call with command is_text_present" do
19
+ RestClient.should_receive(:get).with(@device_end_point, params: { "command" => command}).and_return(response)
20
+ @device.contains_textview_text?(text)
21
+ end
22
+
23
+ context "on successful response" do
24
+ let(:response) { "{ \"success\": true }" }
25
+
26
+ it "should return true" do
27
+ @device.contains_textview_text?(text).should be_true
28
+ end
29
+ end
30
+
31
+ context "on failure response" do
32
+ let(:response) { "{ \"success\": false }" }
33
+
34
+ it "should return false" do
35
+ @device.contains_textview_text?(text).should be_false
36
+ end
37
+ end
38
+ end
39
+
40
+ describe "contains_button?" do
41
+ let(:text) { "Ok" }
42
+ let(:command) { {"action" => 'is_button_present', "arguments" => {"text" => text}} }
43
+
44
+ it "should make the call with command is_button_present" do
45
+ RestClient.should_receive(:get).with(@device_end_point, params: { "command" => command}).and_return(response)
46
+ @device.contains_button?(text)
47
+ end
48
+
49
+ context "on successful response" do
50
+ let(:response) { "{ \"success\": true }" }
51
+
52
+ it "should return true" do
53
+ @device.contains_button?(text).should be_true
54
+ end
55
+ end
56
+
57
+ context "on failure response" do
58
+ let(:response) { "{ \"success\": false }" }
59
+
60
+ it "should return false" do
61
+ @device.contains_button?(text).should be_false
62
+ end
63
+ end
64
+ end
65
+
66
+ end
@@ -0,0 +1,39 @@
1
+ # This file was generated by the `rspec --init` command. Conventionally, all
2
+ # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
3
+ # Require this file using `require "spec_helper"` to ensure that it is only
4
+ # loaded once.
5
+ #
6
+ # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
7
+
8
+ require 'honeydew'
9
+ Dir["honeydew/**/*.rb"].each{|f| require f}
10
+
11
+ RSpec.configure do |config|
12
+ config.treat_symbols_as_metadata_keys_with_true_values = true
13
+ config.run_all_when_everything_filtered = true
14
+ config.filter_run :focus
15
+
16
+ # Run specs in random order to surface order dependencies. If you find an
17
+ # order dependency and want to debug it, you can fix the order by providing
18
+ # the seed, which is printed after each run.
19
+ # --seed 1234
20
+ config.order = 'random'
21
+
22
+ config.around :each do |example|
23
+ if example.metadata[:silence_puts]
24
+ silence_stream(STDOUT) { example.run }
25
+ else
26
+ example.run
27
+ end
28
+ end
29
+
30
+ config.before do
31
+ Honeydew.configure do |config|
32
+ config.timeout = 2.seconds
33
+ config.port = 7120
34
+ end
35
+ Honeydew::Device.any_instance.stub(:start_uiautomator_server)
36
+ Honeydew::Device.any_instance.stub(ensure_tablet_ready: true)
37
+ end
38
+ end
39
+
data/todo.md ADDED
@@ -0,0 +1,9 @@
1
+ TODO
2
+ ====
3
+
4
+ * More predefined steps (like swipe, back, etc)
5
+ * Multiple devices
6
+ * Start multiple devices
7
+ * Specify the device on a step basis
8
+ * RDoc
9
+ * Other language clients
metadata ADDED
@@ -0,0 +1,232 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: honeydew
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.4
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Selva
9
+ - Christopher Rex
10
+ autorequire:
11
+ bindir: bin
12
+ cert_chain: []
13
+ date: 2013-07-02 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: bundler
17
+ requirement: !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - ~>
21
+ - !ruby/object:Gem::Version
22
+ version: '1.3'
23
+ type: :development
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ none: false
27
+ requirements:
28
+ - - ~>
29
+ - !ruby/object:Gem::Version
30
+ version: '1.3'
31
+ - !ruby/object:Gem::Dependency
32
+ name: rake
33
+ requirement: !ruby/object:Gem::Requirement
34
+ none: false
35
+ requirements:
36
+ - - ! '>='
37
+ - !ruby/object:Gem::Version
38
+ version: '0'
39
+ type: :development
40
+ prerelease: false
41
+ version_requirements: !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ! '>='
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
47
+ - !ruby/object:Gem::Dependency
48
+ name: rspec
49
+ requirement: !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ type: :development
56
+ prerelease: false
57
+ version_requirements: !ruby/object:Gem::Requirement
58
+ none: false
59
+ requirements:
60
+ - - ! '>='
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
63
+ - !ruby/object:Gem::Dependency
64
+ name: cucumber
65
+ requirement: !ruby/object:Gem::Requirement
66
+ none: false
67
+ requirements:
68
+ - - ! '>='
69
+ - !ruby/object:Gem::Version
70
+ version: '0'
71
+ type: :runtime
72
+ prerelease: false
73
+ version_requirements: !ruby/object:Gem::Requirement
74
+ none: false
75
+ requirements:
76
+ - - ! '>='
77
+ - !ruby/object:Gem::Version
78
+ version: '0'
79
+ - !ruby/object:Gem::Dependency
80
+ name: json
81
+ requirement: !ruby/object:Gem::Requirement
82
+ none: false
83
+ requirements:
84
+ - - ! '>='
85
+ - !ruby/object:Gem::Version
86
+ version: '0'
87
+ type: :runtime
88
+ prerelease: false
89
+ version_requirements: !ruby/object:Gem::Requirement
90
+ none: false
91
+ requirements:
92
+ - - ! '>='
93
+ - !ruby/object:Gem::Version
94
+ version: '0'
95
+ - !ruby/object:Gem::Dependency
96
+ name: rest-client
97
+ requirement: !ruby/object:Gem::Requirement
98
+ none: false
99
+ requirements:
100
+ - - ! '>='
101
+ - !ruby/object:Gem::Version
102
+ version: '0'
103
+ type: :runtime
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ none: false
107
+ requirements:
108
+ - - ! '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: activesupport
113
+ requirement: !ruby/object:Gem::Requirement
114
+ none: false
115
+ requirements:
116
+ - - ! '>='
117
+ - !ruby/object:Gem::Version
118
+ version: '0'
119
+ type: :runtime
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ none: false
123
+ requirements:
124
+ - - ! '>='
125
+ - !ruby/object:Gem::Version
126
+ version: '0'
127
+ description: Automated functional testing on Android with uiautomator and cucumber
128
+ email:
129
+ - scmp-team@amplify.com
130
+ executables: []
131
+ extensions: []
132
+ extra_rdoc_files: []
133
+ files:
134
+ - .gitignore
135
+ - .rspec
136
+ - Gemfile
137
+ - LICENSE.txt
138
+ - README.md
139
+ - Rakefile
140
+ - android-server/.gitignore
141
+ - android-server/pom.xml
142
+ - android-server/repo/com/google/android/uiautomator/4.1.1.4/_maven.repositories
143
+ - android-server/repo/com/google/android/uiautomator/4.1.1.4/uiautomator-4.1.1.4.jar
144
+ - android-server/repo/com/google/android/uiautomator/4.1.1.4/uiautomator-4.1.1.4.pom
145
+ - android-server/repo/com/jayway/maven/plugins/android/generation2/android-maven-plugin/3.5.2-SNAPSHOT/android-maven-plugin-3.5.2-SNAPSHOT.jar
146
+ - android-server/repo/com/jayway/maven/plugins/android/generation2/android-maven-plugin/3.5.2-SNAPSHOT/android-maven-plugin-3.5.2-SNAPSHOT.pom
147
+ - android-server/repo/com/jayway/maven/plugins/android/generation2/android-maven-plugin/3.5.2-SNAPSHOT/maven-metadata-local.xml
148
+ - android-server/repo/commons-jxpath/commons-jxpath/1.4-SNAPSHOT/_maven.repositories
149
+ - android-server/repo/commons-jxpath/commons-jxpath/1.4-SNAPSHOT/commons-jxpath-1.4-SNAPSHOT.jar
150
+ - android-server/repo/commons-jxpath/commons-jxpath/1.4-SNAPSHOT/commons-jxpath-1.4-SNAPSHOT.pom
151
+ - android-server/repo/commons-jxpath/commons-jxpath/1.4-SNAPSHOT/maven-metadata-local.xml
152
+ - android-server/repo/commons-jxpath/commons-jxpath/maven-metadata-local.xml
153
+ - android-server/src/main/java/com/uiautomator_cucumber/android_server/Action.java
154
+ - android-server/src/main/java/com/uiautomator_cucumber/android_server/ActionsExecutor.java
155
+ - android-server/src/main/java/com/uiautomator_cucumber/android_server/Command.java
156
+ - android-server/src/main/java/com/uiautomator_cucumber/android_server/Result.java
157
+ - android-server/src/main/java/com/uiautomator_cucumber/android_server/TestRunner.java
158
+ - android-server/src/main/java/com/uiautomator_cucumber/android_server/actions/Click.java
159
+ - android-server/src/main/java/com/uiautomator_cucumber/android_server/actions/ClickAndWaitForNewWindow.java
160
+ - android-server/src/main/java/com/uiautomator_cucumber/android_server/actions/DumpWindowHierarchy.java
161
+ - android-server/src/main/java/com/uiautomator_cucumber/android_server/actions/HasSettingsMenuItem.java
162
+ - android-server/src/main/java/com/uiautomator_cucumber/android_server/actions/InspectOptionInSettingsMenu.java
163
+ - android-server/src/main/java/com/uiautomator_cucumber/android_server/actions/IsButtonPresent.java
164
+ - android-server/src/main/java/com/uiautomator_cucumber/android_server/actions/IsChildCountEqualTo.java
165
+ - android-server/src/main/java/com/uiautomator_cucumber/android_server/actions/IsElementWithNestedTextPresent.java
166
+ - android-server/src/main/java/com/uiautomator_cucumber/android_server/actions/IsOptionInSettingsMenuDisabled.java
167
+ - android-server/src/main/java/com/uiautomator_cucumber/android_server/actions/IsOptionInSettingsMenuEnabled.java
168
+ - android-server/src/main/java/com/uiautomator_cucumber/android_server/actions/IsTextPresent.java
169
+ - android-server/src/main/java/com/uiautomator_cucumber/android_server/actions/LaunchApp.java
170
+ - android-server/src/main/java/com/uiautomator_cucumber/android_server/actions/LaunchHome.java
171
+ - android-server/src/main/java/com/uiautomator_cucumber/android_server/actions/LongClick.java
172
+ - android-server/src/main/java/com/uiautomator_cucumber/android_server/actions/PressBack.java
173
+ - android-server/src/main/java/com/uiautomator_cucumber/android_server/actions/PressEnter.java
174
+ - android-server/src/main/java/com/uiautomator_cucumber/android_server/actions/SelectFromAppsList.java
175
+ - android-server/src/main/java/com/uiautomator_cucumber/android_server/actions/SelectMenuInSettings.java
176
+ - android-server/src/main/java/com/uiautomator_cucumber/android_server/actions/SetText.java
177
+ - android-server/src/main/java/com/uiautomator_cucumber/android_server/actions/SetTextByIndex.java
178
+ - android-server/src/main/java/com/uiautomator_cucumber/android_server/actions/SetTextByLabel.java
179
+ - android-server/src/main/java/com/uiautomator_cucumber/android_server/actions/Unlock.java
180
+ - android-server/src/main/java/com/uiautomator_cucumber/android_server/actions/WakeUp.java
181
+ - android-server/src/main/java/com/uiautomator_cucumber/android_server/httpd/NanoHTTPD.java
182
+ - android-server/src/main/java/com/uiautomator_cucumber/android_server/httpd/RemoteCommandReceiver.java
183
+ - example/Gemfile
184
+ - example/Rakefile
185
+ - example/features/example.feature
186
+ - example/features/step_definitions/honeydew_steps.rb
187
+ - example/features/support/hooks.rb
188
+ - honeydew.gemspec
189
+ - honeydew.iml
190
+ - lib/honeydew.rb
191
+ - lib/honeydew/cucumber.rb
192
+ - lib/honeydew/device.rb
193
+ - lib/honeydew/device_actions.rb
194
+ - lib/honeydew/device_commands.rb
195
+ - lib/honeydew/device_matchers.rb
196
+ - lib/honeydew/dsl.rb
197
+ - lib/honeydew/hooks.rb
198
+ - lib/honeydew/step_definitions.rb
199
+ - lib/honeydew/version.rb
200
+ - lib/tasks/honeydew.rake
201
+ - spec/honeydew/device_matchers_spec.rb
202
+ - spec/honeydew/device_spec.rb
203
+ - spec/spec_helper.rb
204
+ - todo.md
205
+ homepage: ''
206
+ licenses: []
207
+ post_install_message:
208
+ rdoc_options: []
209
+ require_paths:
210
+ - lib
211
+ required_ruby_version: !ruby/object:Gem::Requirement
212
+ none: false
213
+ requirements:
214
+ - - ! '>='
215
+ - !ruby/object:Gem::Version
216
+ version: '0'
217
+ required_rubygems_version: !ruby/object:Gem::Requirement
218
+ none: false
219
+ requirements:
220
+ - - ! '>='
221
+ - !ruby/object:Gem::Version
222
+ version: '0'
223
+ requirements: []
224
+ rubyforge_project:
225
+ rubygems_version: 1.8.25
226
+ signing_key:
227
+ specification_version: 3
228
+ summary: Automated functional testing on Android with uiautomator and cucumber
229
+ test_files:
230
+ - spec/honeydew/device_matchers_spec.rb
231
+ - spec/honeydew/device_spec.rb
232
+ - spec/spec_helper.rb