honeydew 0.17.0 → 0.18.0

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