honeydew 0.17.0 → 0.18.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 (36) hide show
  1. data/Rakefile +11 -4
  2. data/lib/honeydew/device.rb +7 -23
  3. data/lib/honeydew/honeydew.rb +1 -1
  4. data/lib/honeydew/version.rb +1 -1
  5. data/server/pom.xml +1 -1
  6. data/server/repo/fi/iki/elonen/nanohttpd/2.0.3/nanohttpd-2.0.3.jar +0 -0
  7. data/server/repo/fi/iki/elonen/nanohttpd-webserver/2.0.3/nanohttpd-webserver-2.0.3.jar +0 -0
  8. data/server/src/main/java/com/amplify/honeydew_server/Action.java +1 -1
  9. data/server/src/main/java/com/amplify/honeydew_server/ActionsExecutor.java +3 -5
  10. data/server/src/main/java/com/amplify/honeydew_server/TestRunner.java +1 -1
  11. data/server/src/main/java/com/amplify/honeydew_server/actions/Click.java +2 -5
  12. data/server/src/main/java/com/amplify/honeydew_server/actions/ClickAndWaitForNewWindow.java +2 -5
  13. data/server/src/main/java/com/amplify/honeydew_server/actions/DumpWindowHierarchy.java +3 -6
  14. data/server/src/main/java/com/amplify/honeydew_server/actions/HasSettingsMenuItem.java +1 -2
  15. data/server/src/main/java/com/amplify/honeydew_server/actions/InspectOptionInSettingsMenu.java +2 -3
  16. data/server/src/main/java/com/amplify/honeydew_server/actions/IsButtonPresent.java +2 -6
  17. data/server/src/main/java/com/amplify/honeydew_server/actions/IsChildCountEqualTo.java +1 -2
  18. data/server/src/main/java/com/amplify/honeydew_server/actions/IsElementWithNestedTextPresent.java +2 -7
  19. data/server/src/main/java/com/amplify/honeydew_server/actions/IsTextPresent.java +2 -4
  20. data/server/src/main/java/com/amplify/honeydew_server/actions/LaunchApp.java +1 -2
  21. data/server/src/main/java/com/amplify/honeydew_server/actions/LaunchHome.java +1 -2
  22. data/server/src/main/java/com/amplify/honeydew_server/actions/LongClick.java +2 -5
  23. data/server/src/main/java/com/amplify/honeydew_server/actions/PressBack.java +1 -2
  24. data/server/src/main/java/com/amplify/honeydew_server/actions/PressEnter.java +1 -2
  25. data/server/src/main/java/com/amplify/honeydew_server/actions/ScrollToTextByIndex.java +1 -2
  26. data/server/src/main/java/com/amplify/honeydew_server/actions/SelectFromAppsList.java +1 -2
  27. data/server/src/main/java/com/amplify/honeydew_server/actions/SelectMenuInSettings.java +1 -2
  28. data/server/src/main/java/com/amplify/honeydew_server/actions/SetText.java +2 -6
  29. data/server/src/main/java/com/amplify/honeydew_server/actions/SetTextByIndex.java +2 -6
  30. data/server/src/main/java/com/amplify/honeydew_server/actions/SetTextByLabel.java +2 -6
  31. data/server/src/main/java/com/amplify/honeydew_server/actions/Unlock.java +2 -6
  32. data/server/src/main/java/com/amplify/honeydew_server/actions/WakeUp.java +2 -3
  33. data/server/src/main/java/com/amplify/honeydew_server/httpd/RemoteCommandReceiver.java +7 -9
  34. data/server/target/honeydew-server-0.18.0.jar +0 -0
  35. metadata +87 -78
  36. data/server/target/honeydew-server-0.17.0.jar +0 -0
data/Rakefile CHANGED
@@ -1,13 +1,20 @@
1
- require "bundler/gem_tasks"
1
+ require 'bundler/gem_tasks'
2
2
  require 'rspec/core/rake_task'
3
3
 
4
4
  RSpec::Core::RakeTask.new(:spec)
5
5
 
6
6
  task :default => :spec
7
7
 
8
- desc "build android server"
9
- task :build_android_server do
10
- system "cd #{android_server_path} && mvn clean package"
8
+ namespace :server do
9
+ desc 'build android server'
10
+ task :build do
11
+ system "cd #{android_server_path} && mvn clean package"
12
+ end
13
+
14
+ desc 'push the server to the device'
15
+ task push: :build do
16
+ system "adb push #{android_server_path}/target/honeydew-server-#{Honeydew::VERSION}.jar /data/local/tmp"
17
+ end
11
18
  end
12
19
 
13
20
  def android_server_path
@@ -38,21 +38,9 @@ module Honeydew
38
38
  private
39
39
 
40
40
  def perform_assertion action, arguments = {}, options = {}
41
- ensure_device_ready
42
-
43
- arguments[:timeout] = Honeydew.config.timeout.to_s
44
-
45
- debug "performing assertion #{action} with arguments #{arguments}"
46
- Timeout.timeout Honeydew.config.timeout.to_i, FinderTimeout do
47
- begin
48
- send_command action, arguments
49
- rescue ActionFailedError
50
- sleep 0.3
51
- retry
52
- end
53
- end
54
-
55
- rescue FinderTimeout
41
+ perform_action action, arguments, options
42
+ rescue ActionFailedError
43
+ false
56
44
  end
57
45
 
58
46
  def perform_action action, arguments = {}, options = {}
@@ -76,10 +64,10 @@ module Honeydew
76
64
  case response
77
65
  when Net::HTTPOK
78
66
  true
79
- when Net::HTTPRequestedRangeNotSatisfiable
67
+ when Net::HTTPNoContent
80
68
  raise ActionFailedError.new response.body
81
69
  else
82
- raise "honeydew-server failed to process command, response: #{response.value}"
70
+ raise "honeydew-server failed to process command, response: #{response.body}"
83
71
  end
84
72
  end
85
73
 
@@ -90,13 +78,9 @@ module Honeydew
90
78
  end
91
79
  end
92
80
 
93
- def timeout_server_operation &block
94
- Timeout.timeout(Honeydew.config.server_timeout.to_i, ServerTimeoutError, &block)
95
- end
96
-
97
81
  def wait_for_honeydew_server
98
82
  info 'waiting for honeydew-server to respond'
99
- timeout_server_operation do
83
+ Timeout.timeout(Honeydew.config.server_timeout.to_i, ServerTimeoutError) do
100
84
  sleep 0.1 until honeydew_server_alive?
101
85
  end
102
86
  info 'honeydew-server is alive and awaiting commands'
@@ -106,7 +90,7 @@ module Honeydew
106
90
  end
107
91
 
108
92
  def honeydew_server_alive?
109
- Net::HTTP.get_response(device_endpoint('/status')).code.to_i == 200
93
+ Net::HTTP.get_response(device_endpoint('/status')).is_a?(Net::HTTPSuccess)
110
94
  rescue Errno::ECONNREFUSED, Errno::ECONNRESET, Errno::ETIMEDOUT, Errno::ENETRESET, EOFError
111
95
  end
112
96
  end
@@ -12,7 +12,7 @@ module Honeydew
12
12
 
13
13
  def initialize
14
14
  @port = 7120
15
- @timeout = 5.seconds
15
+ @timeout = 2.seconds
16
16
  @server_timeout = 60.seconds
17
17
 
18
18
  @logger = Logger.new(STDERR)
@@ -1,3 +1,3 @@
1
1
  module Honeydew
2
- VERSION = '0.17.0'
2
+ VERSION = '0.18.0'
3
3
  end
data/server/pom.xml CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  <groupId>amplify</groupId>
7
7
  <artifactId>honeydew-server</artifactId>
8
- <version>0.17.0</version>
8
+ <version>0.18.0</version>
9
9
  <packaging>jar</packaging>
10
10
  <name>Honeydew Android Server</name>
11
11
 
@@ -23,7 +23,7 @@ public abstract class Action {
23
23
  return uiDevice;
24
24
  }
25
25
 
26
- private Integer getTimeoutInMs(Map<String, Object> arguments){
26
+ private long getTimeoutInMs(Map<String, Object> arguments){
27
27
  return Integer.parseInt((String) arguments.get("timeout")) * 1000;
28
28
  }
29
29
 
@@ -1,13 +1,11 @@
1
1
  package com.amplify.honeydew_server;
2
2
 
3
3
  import android.util.Log;
4
- import com.android.uiautomator.core.UiDevice;
5
4
  import com.amplify.honeydew_server.actions.*;
5
+ import com.android.uiautomator.core.UiDevice;
6
6
 
7
- import java.lang.reflect.Constructor;
8
- import java.lang.reflect.InvocationTargetException;
9
- import java.util.HashMap;
10
- import java.util.Set;
7
+ import java.lang.reflect.*;
8
+ import java.util.*;
11
9
 
12
10
  import static com.google.common.collect.Sets.newHashSet;
13
11
 
@@ -2,9 +2,9 @@ package com.amplify.honeydew_server;
2
2
 
3
3
  import android.util.Log;
4
4
  import android.view.KeyEvent;
5
+ import com.amplify.honeydew_server.httpd.RemoteCommandReceiver;
5
6
  import com.android.uiautomator.core.UiDevice;
6
7
  import com.android.uiautomator.testrunner.UiAutomatorTestCase;
7
- import com.amplify.honeydew_server.httpd.RemoteCommandReceiver;
8
8
  import fi.iki.elonen.ServerRunner;
9
9
 
10
10
  public class TestRunner extends UiAutomatorTestCase {
@@ -1,10 +1,7 @@
1
1
  package com.amplify.honeydew_server.actions;
2
2
 
3
- import com.amplify.honeydew_server.Action;
4
- import com.amplify.honeydew_server.Result;
5
- import com.android.uiautomator.core.UiDevice;
6
- import com.android.uiautomator.core.UiObject;
7
- import com.android.uiautomator.core.UiObjectNotFoundException;
3
+ import com.amplify.honeydew_server.*;
4
+ import com.android.uiautomator.core.*;
8
5
 
9
6
  import java.util.Map;
10
7
 
@@ -1,10 +1,7 @@
1
1
  package com.amplify.honeydew_server.actions;
2
2
 
3
- import com.android.uiautomator.core.UiDevice;
4
- import com.android.uiautomator.core.UiObject;
5
- import com.android.uiautomator.core.UiObjectNotFoundException;
6
- import com.amplify.honeydew_server.Action;
7
- import com.amplify.honeydew_server.Result;
3
+ import com.amplify.honeydew_server.*;
4
+ import com.android.uiautomator.core.*;
8
5
 
9
6
  import java.util.Map;
10
7
 
@@ -1,13 +1,10 @@
1
1
  package com.amplify.honeydew_server.actions;
2
2
 
3
- import com.android.uiautomator.core.UiDevice;
4
- import com.android.uiautomator.core.UiObjectNotFoundException;
5
- import com.amplify.honeydew_server.Action;
6
- import com.amplify.honeydew_server.Result;
3
+ import com.amplify.honeydew_server.*;
4
+ import com.android.uiautomator.core.*;
7
5
  import org.apache.commons.io.FileUtils;
8
6
 
9
- import java.io.File;
10
- import java.io.IOException;
7
+ import java.io.*;
11
8
  import java.util.Map;
12
9
 
13
10
  public class DumpWindowHierarchy extends Action {
@@ -1,9 +1,8 @@
1
1
  package com.amplify.honeydew_server.actions;
2
2
 
3
3
  import android.widget.TextView;
4
+ import com.amplify.honeydew_server.*;
4
5
  import com.android.uiautomator.core.*;
5
- import com.amplify.honeydew_server.Action;
6
- import com.amplify.honeydew_server.Result;
7
6
 
8
7
  import java.util.Map;
9
8
 
@@ -1,11 +1,10 @@
1
1
  package com.amplify.honeydew_server.actions;
2
2
 
3
3
  import android.widget.TextView;
4
- import com.android.uiautomator.core.*;
5
4
  import com.amplify.honeydew_server.Result;
5
+ import com.android.uiautomator.core.*;
6
6
 
7
- import java.util.List;
8
- import java.util.Map;
7
+ import java.util.*;
9
8
 
10
9
  public abstract class InspectOptionInSettingsMenu extends SelectMenuInSettings {
11
10
  private Boolean enabled;
@@ -1,11 +1,7 @@
1
1
  package com.amplify.honeydew_server.actions;
2
2
 
3
- import com.android.uiautomator.core.UiDevice;
4
- import com.android.uiautomator.core.UiObject;
5
- import com.android.uiautomator.core.UiObjectNotFoundException;
6
- import com.android.uiautomator.core.UiSelector;
7
- import com.amplify.honeydew_server.Action;
8
- import com.amplify.honeydew_server.Result;
3
+ import com.amplify.honeydew_server.*;
4
+ import com.android.uiautomator.core.*;
9
5
 
10
6
  import java.util.Map;
11
7
 
@@ -1,8 +1,7 @@
1
1
  package com.amplify.honeydew_server.actions;
2
2
 
3
+ import com.amplify.honeydew_server.*;
3
4
  import com.android.uiautomator.core.*;
4
- import com.amplify.honeydew_server.Action;
5
- import com.amplify.honeydew_server.Result;
6
5
 
7
6
  import java.util.Map;
8
7
 
@@ -1,12 +1,7 @@
1
1
  package com.amplify.honeydew_server.actions;
2
2
 
3
- import com.amplify.honeydew_server.Action;
4
- import com.amplify.honeydew_server.Result;
5
- import com.android.uiautomator.core.UiCollection;
6
- import com.android.uiautomator.core.UiDevice;
7
- import com.android.uiautomator.core.UiObject;
8
- import com.android.uiautomator.core.UiObjectNotFoundException;
9
- import com.android.uiautomator.core.UiSelector;
3
+ import com.amplify.honeydew_server.*;
4
+ import com.android.uiautomator.core.*;
10
5
 
11
6
  import java.util.Map;
12
7
 
@@ -1,9 +1,7 @@
1
1
  package com.amplify.honeydew_server.actions;
2
2
 
3
- import com.android.uiautomator.core.UiDevice;
4
- import com.android.uiautomator.core.UiObjectNotFoundException;
5
- import com.amplify.honeydew_server.Action;
6
- import com.amplify.honeydew_server.Result;
3
+ import com.amplify.honeydew_server.*;
4
+ import com.android.uiautomator.core.*;
7
5
 
8
6
  import java.util.Map;
9
7
 
@@ -1,8 +1,7 @@
1
1
  package com.amplify.honeydew_server.actions;
2
2
 
3
+ import com.amplify.honeydew_server.*;
3
4
  import com.android.uiautomator.core.*;
4
- import com.amplify.honeydew_server.Action;
5
- import com.amplify.honeydew_server.Result;
6
5
 
7
6
  import java.util.Map;
8
7
 
@@ -1,8 +1,7 @@
1
1
  package com.amplify.honeydew_server.actions;
2
2
 
3
+ import com.amplify.honeydew_server.*;
3
4
  import com.android.uiautomator.core.*;
4
- import com.amplify.honeydew_server.Action;
5
- import com.amplify.honeydew_server.Result;
6
5
 
7
6
  import java.util.Map;
8
7
 
@@ -1,10 +1,7 @@
1
1
  package com.amplify.honeydew_server.actions;
2
2
 
3
- import com.android.uiautomator.core.UiDevice;
4
- import com.android.uiautomator.core.UiObject;
5
- import com.android.uiautomator.core.UiObjectNotFoundException;
6
- import com.amplify.honeydew_server.Action;
7
- import com.amplify.honeydew_server.Result;
3
+ import com.amplify.honeydew_server.*;
4
+ import com.android.uiautomator.core.*;
8
5
 
9
6
  import java.util.Map;
10
7
 
@@ -1,8 +1,7 @@
1
1
  package com.amplify.honeydew_server.actions;
2
2
 
3
+ import com.amplify.honeydew_server.*;
3
4
  import com.android.uiautomator.core.*;
4
- import com.amplify.honeydew_server.Action;
5
- import com.amplify.honeydew_server.Result;
6
5
 
7
6
  import java.util.Map;
8
7
 
@@ -1,8 +1,7 @@
1
1
  package com.amplify.honeydew_server.actions;
2
2
 
3
+ import com.amplify.honeydew_server.*;
3
4
  import com.android.uiautomator.core.*;
4
- import com.amplify.honeydew_server.Action;
5
- import com.amplify.honeydew_server.Result;
6
5
 
7
6
  import java.util.Map;
8
7
 
@@ -1,8 +1,7 @@
1
1
  package com.amplify.honeydew_server.actions;
2
2
 
3
3
  import android.util.Log;
4
- import com.amplify.honeydew_server.Action;
5
- import com.amplify.honeydew_server.Result;
4
+ import com.amplify.honeydew_server.*;
6
5
  import com.android.uiautomator.core.*;
7
6
 
8
7
  import java.util.Map;
@@ -1,9 +1,8 @@
1
1
  package com.amplify.honeydew_server.actions;
2
2
 
3
3
  import android.widget.TextView;
4
+ import com.amplify.honeydew_server.*;
4
5
  import com.android.uiautomator.core.*;
5
- import com.amplify.honeydew_server.Action;
6
- import com.amplify.honeydew_server.Result;
7
6
 
8
7
  import java.util.Map;
9
8
 
@@ -1,9 +1,8 @@
1
1
  package com.amplify.honeydew_server.actions;
2
2
 
3
3
  import android.widget.TextView;
4
+ import com.amplify.honeydew_server.*;
4
5
  import com.android.uiautomator.core.*;
5
- import com.amplify.honeydew_server.Action;
6
- import com.amplify.honeydew_server.Result;
7
6
 
8
7
  import java.util.Map;
9
8
 
@@ -1,11 +1,7 @@
1
1
  package com.amplify.honeydew_server.actions;
2
2
 
3
- import com.android.uiautomator.core.UiDevice;
4
- import com.android.uiautomator.core.UiObject;
5
- import com.android.uiautomator.core.UiObjectNotFoundException;
6
- import com.android.uiautomator.core.UiSelector;
7
- import com.amplify.honeydew_server.Action;
8
- import com.amplify.honeydew_server.Result;
3
+ import com.amplify.honeydew_server.*;
4
+ import com.android.uiautomator.core.*;
9
5
 
10
6
  import java.util.Map;
11
7
 
@@ -1,11 +1,7 @@
1
1
  package com.amplify.honeydew_server.actions;
2
2
 
3
- import com.amplify.honeydew_server.Action;
4
- import com.amplify.honeydew_server.Result;
5
- import com.android.uiautomator.core.UiDevice;
6
- import com.android.uiautomator.core.UiObject;
7
- import com.android.uiautomator.core.UiObjectNotFoundException;
8
- import com.android.uiautomator.core.UiSelector;
3
+ import com.amplify.honeydew_server.*;
4
+ import com.android.uiautomator.core.*;
9
5
 
10
6
  import java.util.Map;
11
7
 
@@ -1,11 +1,7 @@
1
1
  package com.amplify.honeydew_server.actions;
2
2
 
3
- import com.android.uiautomator.core.UiDevice;
4
- import com.android.uiautomator.core.UiObject;
5
- import com.android.uiautomator.core.UiObjectNotFoundException;
6
- import com.android.uiautomator.core.UiSelector;
7
- import com.amplify.honeydew_server.Action;
8
- import com.amplify.honeydew_server.Result;
3
+ import com.amplify.honeydew_server.*;
4
+ import com.android.uiautomator.core.*;
9
5
 
10
6
  import java.util.Map;
11
7
 
@@ -1,11 +1,7 @@
1
1
  package com.amplify.honeydew_server.actions;
2
2
 
3
- import com.amplify.honeydew_server.Action;
4
- import com.amplify.honeydew_server.Result;
5
- import com.android.uiautomator.core.UiDevice;
6
- import com.android.uiautomator.core.UiObject;
7
- import com.android.uiautomator.core.UiObjectNotFoundException;
8
- import com.android.uiautomator.core.UiSelector;
3
+ import com.amplify.honeydew_server.*;
4
+ import com.android.uiautomator.core.*;
9
5
 
10
6
  import java.util.Map;
11
7
 
@@ -1,9 +1,8 @@
1
1
  package com.amplify.honeydew_server.actions;
2
2
 
3
- import com.android.uiautomator.core.*;
4
- import com.amplify.honeydew_server.Action;
5
- import com.amplify.honeydew_server.Result;
6
3
  import android.os.RemoteException;
4
+ import com.amplify.honeydew_server.*;
5
+ import com.android.uiautomator.core.*;
7
6
 
8
7
  import java.util.Map;
9
8
 
@@ -1,16 +1,13 @@
1
1
  package com.amplify.honeydew_server.httpd;
2
2
 
3
3
  import android.util.Log;
4
- import com.amplify.honeydew_server.ActionsExecutor;
5
- import com.amplify.honeydew_server.Command;
6
- import com.amplify.honeydew_server.Result;
4
+ import com.amplify.honeydew_server.*;
7
5
  import com.google.gson.Gson;
8
6
  import com.google.gson.reflect.TypeToken;
9
7
  import fi.iki.elonen.NanoHTTPD;
10
8
 
11
9
  import java.io.IOException;
12
10
  import java.lang.reflect.Type;
13
- import java.util.HashMap;
14
11
  import java.util.Map;
15
12
 
16
13
  public class RemoteCommandReceiver extends NanoHTTPD {
@@ -32,11 +29,13 @@ public class RemoteCommandReceiver extends NanoHTTPD {
32
29
  @Override
33
30
  public Response serve(String uri, Method method, Map<String, String> headers, Map<String, String> params, Map<String, String> files) {
34
31
  if (method == Method.POST && uri.equalsIgnoreCase("/terminate")) {
32
+ Log.d(getClass().getName(), "Got terminate request, finishing up...");
35
33
  stop();
36
34
  return terminateOkResponse;
37
35
  } else if (method == Method.POST && uri.equalsIgnoreCase("/command")) {
38
36
  return performCommand(params);
39
37
  } else if (method == Method.GET && uri.equalsIgnoreCase("/status")) {
38
+ Log.d(getClass().getName(), "Got status request, responding OK");
40
39
  return statusOkResponse;
41
40
  }
42
41
 
@@ -52,15 +51,14 @@ public class RemoteCommandReceiver extends NanoHTTPD {
52
51
  Log.i(getClass().getName(), String.format("Performing action %s: %s for %s", action, argumentJson, params.toString()));
53
52
  try {
54
53
  Result result = actionsExecutor.execute(new Command(action, arguments));
55
- if (result.success == true) {
54
+ if (result.success) {
56
55
  return new Response(result.description);
57
56
  } else {
58
- // TODO: NanoHTTPD does not provide a particularly complete set of status codes, so use 416 for now
59
- return new Response(Response.Status.RANGE_NOT_SATISFIABLE, PLAIN_TEXT, result.errorMessage);
57
+ return new Response(Response.Status.NO_CONTENT, null, (String) null);
60
58
  }
61
59
  } catch(Exception exception) {
62
60
  Log.e(getClass().getName(), String.format("Server error while processing command %s: %s", action, exception.toString()));
63
- return new Response(Response.Status.INTERNAL_ERROR, PLAIN_TEXT, exception.toString());
61
+ return new Response(Response.Status.INTERNAL_ERROR, PLAIN_TEXT, exception.getMessage());
64
62
  }
65
63
  }
66
- }
64
+ }
metadata CHANGED
@@ -1,121 +1,128 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: honeydew
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.17.0
5
- prerelease:
4
+ prerelease:
5
+ version: 0.18.0
6
6
  platform: ruby
7
7
  authors:
8
8
  - Selvakumar Natesan
9
9
  - Christopher Rex
10
10
  - Shyam Vala
11
11
  - John Barker
12
- autorequire:
12
+ autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2013-08-06 00:00:00.000000000 Z
15
+ date: 2013-08-07 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: activesupport
19
- requirement: !ruby/object:Gem::Requirement
20
- none: false
19
+ version_requirements: !ruby/object:Gem::Requirement
21
20
  requirements:
22
- - - ! '>='
21
+ - - ">="
23
22
  - !ruby/object:Gem::Version
24
- version: '0'
25
- type: :runtime
26
- prerelease: false
27
- version_requirements: !ruby/object:Gem::Requirement
23
+ version: !binary |-
24
+ MA==
28
25
  none: false
26
+ requirement: !ruby/object:Gem::Requirement
29
27
  requirements:
30
- - - ! '>='
28
+ - - ">="
31
29
  - !ruby/object:Gem::Version
32
- version: '0'
30
+ version: !binary |-
31
+ MA==
32
+ none: false
33
+ prerelease: false
34
+ type: :runtime
33
35
  - !ruby/object:Gem::Dependency
34
36
  name: json
35
- requirement: !ruby/object:Gem::Requirement
36
- none: false
37
+ version_requirements: !ruby/object:Gem::Requirement
37
38
  requirements:
38
- - - ! '>='
39
+ - - ">="
39
40
  - !ruby/object:Gem::Version
40
- version: '0'
41
- type: :runtime
42
- prerelease: false
43
- version_requirements: !ruby/object:Gem::Requirement
41
+ version: !binary |-
42
+ MA==
44
43
  none: false
44
+ requirement: !ruby/object:Gem::Requirement
45
45
  requirements:
46
- - - ! '>='
46
+ - - ">="
47
47
  - !ruby/object:Gem::Version
48
- version: '0'
48
+ version: !binary |-
49
+ MA==
50
+ none: false
51
+ prerelease: false
52
+ type: :runtime
49
53
  - !ruby/object:Gem::Dependency
50
54
  name: bundler
51
- requirement: !ruby/object:Gem::Requirement
52
- none: false
55
+ version_requirements: !ruby/object:Gem::Requirement
53
56
  requirements:
54
- - - ~>
57
+ - - "~>"
55
58
  - !ruby/object:Gem::Version
56
59
  version: '1.3'
57
- type: :development
58
- prerelease: false
59
- version_requirements: !ruby/object:Gem::Requirement
60
60
  none: false
61
+ requirement: !ruby/object:Gem::Requirement
61
62
  requirements:
62
- - - ~>
63
+ - - "~>"
63
64
  - !ruby/object:Gem::Version
64
65
  version: '1.3'
66
+ none: false
67
+ prerelease: false
68
+ type: :development
65
69
  - !ruby/object:Gem::Dependency
66
70
  name: rake
67
- requirement: !ruby/object:Gem::Requirement
68
- none: false
71
+ version_requirements: !ruby/object:Gem::Requirement
69
72
  requirements:
70
- - - ! '>='
73
+ - - ">="
71
74
  - !ruby/object:Gem::Version
72
- version: '0'
73
- type: :development
74
- prerelease: false
75
- version_requirements: !ruby/object:Gem::Requirement
75
+ version: !binary |-
76
+ MA==
76
77
  none: false
78
+ requirement: !ruby/object:Gem::Requirement
77
79
  requirements:
78
- - - ! '>='
80
+ - - ">="
79
81
  - !ruby/object:Gem::Version
80
- version: '0'
82
+ version: !binary |-
83
+ MA==
84
+ none: false
85
+ prerelease: false
86
+ type: :development
81
87
  - !ruby/object:Gem::Dependency
82
88
  name: rspec
83
- requirement: !ruby/object:Gem::Requirement
84
- none: false
89
+ version_requirements: !ruby/object:Gem::Requirement
85
90
  requirements:
86
- - - ! '>='
91
+ - - ">="
87
92
  - !ruby/object:Gem::Version
88
- version: '0'
89
- type: :development
90
- prerelease: false
91
- version_requirements: !ruby/object:Gem::Requirement
93
+ version: !binary |-
94
+ MA==
92
95
  none: false
96
+ requirement: !ruby/object:Gem::Requirement
93
97
  requirements:
94
- - - ! '>='
98
+ - - ">="
95
99
  - !ruby/object:Gem::Version
96
- version: '0'
100
+ version: !binary |-
101
+ MA==
102
+ none: false
103
+ prerelease: false
104
+ type: :development
97
105
  - !ruby/object:Gem::Dependency
98
106
  name: simplecov
99
- requirement: !ruby/object:Gem::Requirement
100
- none: false
107
+ version_requirements: !ruby/object:Gem::Requirement
101
108
  requirements:
102
- - - ! '>='
109
+ - - ">="
103
110
  - !ruby/object:Gem::Version
104
- version: '0'
105
- type: :development
106
- prerelease: false
107
- version_requirements: !ruby/object:Gem::Requirement
111
+ version: !binary |-
112
+ MA==
108
113
  none: false
114
+ requirement: !ruby/object:Gem::Requirement
109
115
  requirements:
110
- - - ! '>='
116
+ - - ">="
111
117
  - !ruby/object:Gem::Version
112
- version: '0'
113
- description: ! 'Honeydew is a Ruby driver for UIAutomator which enables automated
114
- testing of
115
-
118
+ version: !binary |-
119
+ MA==
120
+ none: false
121
+ prerelease: false
122
+ type: :development
123
+ description: |
124
+ Honeydew is a Ruby driver for UIAutomator which enables automated testing of
116
125
  Android devices.
117
-
118
- '
119
126
  email:
120
127
  - scmp-team@amplify.com
121
128
  - jbarker@amplify.com
@@ -123,10 +130,10 @@ executables: []
123
130
  extensions: []
124
131
  extra_rdoc_files: []
125
132
  files:
126
- - .gitignore
127
- - .rspec
128
- - .ruby-gemset
129
- - .ruby-version
133
+ - ".gitignore"
134
+ - ".rspec"
135
+ - ".ruby-gemset"
136
+ - ".ruby-version"
130
137
  - Gemfile
131
138
  - LICENSE.txt
132
139
  - README.md
@@ -203,33 +210,35 @@ files:
203
210
  - spec/honeydew/device_matchers_spec.rb
204
211
  - spec/honeydew/device_spec.rb
205
212
  - spec/spec_helper.rb
206
- - server/target/honeydew-server-0.17.0.jar
207
- homepage:
213
+ - server/target/honeydew-server-0.18.0.jar
214
+ homepage:
208
215
  licenses: []
209
- post_install_message:
216
+ post_install_message:
210
217
  rdoc_options: []
211
218
  require_paths:
212
219
  - lib
213
220
  required_ruby_version: !ruby/object:Gem::Requirement
214
- none: false
215
221
  requirements:
216
- - - ! '>='
222
+ - - ">="
217
223
  - !ruby/object:Gem::Version
218
- version: '0'
219
- required_rubygems_version: !ruby/object:Gem::Requirement
224
+ version: !binary |-
225
+ MA==
220
226
  none: false
227
+ required_rubygems_version: !ruby/object:Gem::Requirement
221
228
  requirements:
222
- - - ! '>='
229
+ - - ">="
223
230
  - !ruby/object:Gem::Version
224
- version: '0'
231
+ version: !binary |-
232
+ MA==
233
+ none: false
225
234
  requirements: []
226
- rubyforge_project:
227
- rubygems_version: 1.8.25
228
- signing_key:
235
+ rubyforge_project:
236
+ rubygems_version: 1.8.24
237
+ signing_key:
229
238
  specification_version: 3
230
239
  summary: Ruby DSL for controlling Android devices
231
240
  test_files:
232
- - .rspec
241
+ - ".rspec"
233
242
  - examples/rspec/Gemfile
234
243
  - examples/rspec/Rakefile
235
244
  - examples/rspec/spec/browse_spec.rb