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.
- data/Rakefile +11 -4
- data/lib/honeydew/device.rb +7 -23
- data/lib/honeydew/honeydew.rb +1 -1
- data/lib/honeydew/version.rb +1 -1
- data/server/pom.xml +1 -1
- data/server/repo/fi/iki/elonen/nanohttpd/2.0.3/nanohttpd-2.0.3.jar +0 -0
- data/server/repo/fi/iki/elonen/nanohttpd-webserver/2.0.3/nanohttpd-webserver-2.0.3.jar +0 -0
- data/server/src/main/java/com/amplify/honeydew_server/Action.java +1 -1
- data/server/src/main/java/com/amplify/honeydew_server/ActionsExecutor.java +3 -5
- data/server/src/main/java/com/amplify/honeydew_server/TestRunner.java +1 -1
- data/server/src/main/java/com/amplify/honeydew_server/actions/Click.java +2 -5
- data/server/src/main/java/com/amplify/honeydew_server/actions/ClickAndWaitForNewWindow.java +2 -5
- data/server/src/main/java/com/amplify/honeydew_server/actions/DumpWindowHierarchy.java +3 -6
- data/server/src/main/java/com/amplify/honeydew_server/actions/HasSettingsMenuItem.java +1 -2
- data/server/src/main/java/com/amplify/honeydew_server/actions/InspectOptionInSettingsMenu.java +2 -3
- data/server/src/main/java/com/amplify/honeydew_server/actions/IsButtonPresent.java +2 -6
- data/server/src/main/java/com/amplify/honeydew_server/actions/IsChildCountEqualTo.java +1 -2
- data/server/src/main/java/com/amplify/honeydew_server/actions/IsElementWithNestedTextPresent.java +2 -7
- data/server/src/main/java/com/amplify/honeydew_server/actions/IsTextPresent.java +2 -4
- data/server/src/main/java/com/amplify/honeydew_server/actions/LaunchApp.java +1 -2
- data/server/src/main/java/com/amplify/honeydew_server/actions/LaunchHome.java +1 -2
- data/server/src/main/java/com/amplify/honeydew_server/actions/LongClick.java +2 -5
- data/server/src/main/java/com/amplify/honeydew_server/actions/PressBack.java +1 -2
- data/server/src/main/java/com/amplify/honeydew_server/actions/PressEnter.java +1 -2
- data/server/src/main/java/com/amplify/honeydew_server/actions/ScrollToTextByIndex.java +1 -2
- data/server/src/main/java/com/amplify/honeydew_server/actions/SelectFromAppsList.java +1 -2
- data/server/src/main/java/com/amplify/honeydew_server/actions/SelectMenuInSettings.java +1 -2
- data/server/src/main/java/com/amplify/honeydew_server/actions/SetText.java +2 -6
- data/server/src/main/java/com/amplify/honeydew_server/actions/SetTextByIndex.java +2 -6
- data/server/src/main/java/com/amplify/honeydew_server/actions/SetTextByLabel.java +2 -6
- data/server/src/main/java/com/amplify/honeydew_server/actions/Unlock.java +2 -6
- data/server/src/main/java/com/amplify/honeydew_server/actions/WakeUp.java +2 -3
- data/server/src/main/java/com/amplify/honeydew_server/httpd/RemoteCommandReceiver.java +7 -9
- data/server/target/honeydew-server-0.18.0.jar +0 -0
- metadata +87 -78
- data/server/target/honeydew-server-0.17.0.jar +0 -0
    
        data/Rakefile
    CHANGED
    
    | @@ -1,13 +1,20 @@ | |
| 1 | 
            -
            require  | 
| 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 | 
            -
             | 
| 9 | 
            -
             | 
| 10 | 
            -
               | 
| 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
         | 
    
        data/lib/honeydew/device.rb
    CHANGED
    
    | @@ -38,21 +38,9 @@ module Honeydew | |
| 38 38 | 
             
                private
         | 
| 39 39 |  | 
| 40 40 | 
             
                def perform_assertion action, arguments = {}, options = {}
         | 
| 41 | 
            -
                   | 
| 42 | 
            -
             | 
| 43 | 
            -
                   | 
| 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:: | 
| 67 | 
            +
                  when Net::HTTPNoContent
         | 
| 80 68 | 
             
                    raise ActionFailedError.new response.body
         | 
| 81 69 | 
             
                  else
         | 
| 82 | 
            -
                    raise "honeydew-server failed to process command, response: #{response. | 
| 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 | 
            -
                   | 
| 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')). | 
| 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
         | 
    
        data/lib/honeydew/honeydew.rb
    CHANGED
    
    
    
        data/lib/honeydew/version.rb
    CHANGED
    
    
    
        data/server/pom.xml
    CHANGED
    
    
| Binary file | 
| Binary file | 
| @@ -23,7 +23,7 @@ public abstract class Action { | |
| 23 23 | 
             
                    return uiDevice;
         | 
| 24 24 | 
             
                }
         | 
| 25 25 |  | 
| 26 | 
            -
                private  | 
| 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 | 
| 8 | 
            -
            import java. | 
| 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 | 
| 4 | 
            -
            import com. | 
| 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. | 
| 4 | 
            -
            import com.android.uiautomator.core | 
| 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. | 
| 4 | 
            -
            import com.android.uiautomator.core | 
| 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 | 
| 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 |  | 
    
        data/server/src/main/java/com/amplify/honeydew_server/actions/InspectOptionInSettingsMenu.java
    CHANGED
    
    | @@ -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 | 
| 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. | 
| 4 | 
            -
            import com.android.uiautomator.core | 
| 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 |  | 
    
        data/server/src/main/java/com/amplify/honeydew_server/actions/IsElementWithNestedTextPresent.java
    CHANGED
    
    | @@ -1,12 +1,7 @@ | |
| 1 1 | 
             
            package com.amplify.honeydew_server.actions;
         | 
| 2 2 |  | 
| 3 | 
            -
            import com.amplify.honeydew_server | 
| 4 | 
            -
            import com. | 
| 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. | 
| 4 | 
            -
            import com.android.uiautomator.core | 
| 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,10 +1,7 @@ | |
| 1 1 | 
             
            package com.amplify.honeydew_server.actions;
         | 
| 2 2 |  | 
| 3 | 
            -
            import com. | 
| 4 | 
            -
            import com.android.uiautomator.core | 
| 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 3 | 
             
            import android.util.Log;
         | 
| 4 | 
            -
            import com.amplify.honeydew_server | 
| 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. | 
| 4 | 
            -
            import com.android.uiautomator.core | 
| 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 | 
| 4 | 
            -
            import com. | 
| 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. | 
| 4 | 
            -
            import com.android.uiautomator.core | 
| 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 | 
| 4 | 
            -
            import com. | 
| 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 | 
| 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 | 
| 54 | 
            +
                        if (result.success) {
         | 
| 56 55 | 
             
                            return new Response(result.description);
         | 
| 57 56 | 
             
                        } else {
         | 
| 58 | 
            -
                             | 
| 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. | 
| 61 | 
            +
                        return new Response(Response.Status.INTERNAL_ERROR, PLAIN_TEXT, exception.getMessage());
         | 
| 64 62 | 
             
                    }
         | 
| 65 63 | 
             
                }
         | 
| 66 | 
            -
            }
         | 
| 64 | 
            +
            }
         | 
| Binary file | 
    
        metadata
    CHANGED
    
    | @@ -1,121 +1,128 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: honeydew
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
               | 
| 5 | 
            -
               | 
| 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- | 
| 15 | 
            +
            date: 2013-08-07 00:00:00.000000000 Z
         | 
| 16 16 | 
             
            dependencies:
         | 
| 17 17 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 18 18 | 
             
              name: activesupport
         | 
| 19 | 
            -
               | 
| 20 | 
            -
                none: false
         | 
| 19 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 21 20 | 
             
                requirements:
         | 
| 22 | 
            -
                - -  | 
| 21 | 
            +
                - - ">="
         | 
| 23 22 | 
             
                  - !ruby/object:Gem::Version
         | 
| 24 | 
            -
                    version:  | 
| 25 | 
            -
             | 
| 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:  | 
| 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 | 
            -
               | 
| 36 | 
            -
                none: false
         | 
| 37 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 37 38 | 
             
                requirements:
         | 
| 38 | 
            -
                - -  | 
| 39 | 
            +
                - - ">="
         | 
| 39 40 | 
             
                  - !ruby/object:Gem::Version
         | 
| 40 | 
            -
                    version:  | 
| 41 | 
            -
             | 
| 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:  | 
| 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 | 
            -
               | 
| 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 | 
            -
               | 
| 68 | 
            -
                none: false
         | 
| 71 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 69 72 | 
             
                requirements:
         | 
| 70 | 
            -
                - -  | 
| 73 | 
            +
                - - ">="
         | 
| 71 74 | 
             
                  - !ruby/object:Gem::Version
         | 
| 72 | 
            -
                    version:  | 
| 73 | 
            -
             | 
| 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:  | 
| 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 | 
            -
               | 
| 84 | 
            -
                none: false
         | 
| 89 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 85 90 | 
             
                requirements:
         | 
| 86 | 
            -
                - -  | 
| 91 | 
            +
                - - ">="
         | 
| 87 92 | 
             
                  - !ruby/object:Gem::Version
         | 
| 88 | 
            -
                    version:  | 
| 89 | 
            -
             | 
| 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:  | 
| 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 | 
            -
               | 
| 100 | 
            -
                none: false
         | 
| 107 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 101 108 | 
             
                requirements:
         | 
| 102 | 
            -
                - -  | 
| 109 | 
            +
                - - ">="
         | 
| 103 110 | 
             
                  - !ruby/object:Gem::Version
         | 
| 104 | 
            -
                    version:  | 
| 105 | 
            -
             | 
| 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:  | 
| 113 | 
            -
             | 
| 114 | 
            -
             | 
| 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. | 
| 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:  | 
| 219 | 
            -
             | 
| 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:  | 
| 231 | 
            +
                  version: !binary |-
         | 
| 232 | 
            +
                    MA==
         | 
| 233 | 
            +
              none: false
         | 
| 225 234 | 
             
            requirements: []
         | 
| 226 | 
            -
            rubyforge_project: | 
| 227 | 
            -
            rubygems_version: 1.8. | 
| 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
         | 
| Binary file |