calabash-android 0.2.3 → 0.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (18) hide show
  1. data/CHANGES.txt +10 -0
  2. data/bin/calabash-android +1 -1
  3. data/bin/calabash-android-run.rb +6 -8
  4. data/features-skeleton/support/app_installation_hooks.rb +2 -2
  5. data/lib/calabash-android/operations.rb +4 -1
  6. data/lib/calabash-android/version.rb +2 -2
  7. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/Result.java +8 -1
  8. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/CalabashChromeClient.java +1 -1
  9. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/DumpBodyHtml.java +20 -14
  10. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/DumpHtml.java +20 -13
  11. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/ExecuteJavascript.java +41 -0
  12. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/GetLoadProgress.java +22 -0
  13. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/GetUrl.java +21 -0
  14. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/PressByCssSelector.java +33 -25
  15. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/SetPropertyByCssSelector.java +26 -17
  16. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/SetText.java +2 -2
  17. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/Touch.java +19 -19
  18. metadata +78 -61
data/CHANGES.txt CHANGED
@@ -1,3 +1,13 @@
1
+ 0.2.4:
2
+ Added three actions by Sampo Niskanen for interaction with WebViews:
3
+ * Executing arbitrary javascript in WebView
4
+ * Get the current url
5
+ * Detect the page load status
6
+
7
+ Fixed bug in features-skeleton/support/app_installation_hooks.rb
8
+
9
+ Fixed minor bugs
10
+
1
11
  0.2.3:
2
12
  The 0.2.2 gem was broken :(
3
13
  Making a new release
data/bin/calabash-android CHANGED
@@ -40,7 +40,7 @@ elsif cmd == 'build'
40
40
  exit 0
41
41
  elsif cmd == 'run'
42
42
  if ARGV.empty? or not is_apk_file?(ARGV.first)
43
- calabash_run(nil, ARGV)
43
+ calabash_run()
44
44
  else
45
45
  calabash_run(relative_to_full_path(ARGV.shift))
46
46
  end
@@ -1,4 +1,4 @@
1
- def calabash_run(app_path)
1
+ def calabash_run(app_path = nil)
2
2
 
3
3
  old_runner = "android.test.InstrumentationTestRunner"
4
4
  new_rummer = "sh.calaba.instrumentationbackend.CalabashInstrumentationTestRunner"
@@ -12,14 +12,12 @@ def calabash_run(app_path)
12
12
  exit
13
13
  end
14
14
 
15
-
16
- unless File.exist?(test_server_path(app_path))
17
- puts "No test server found for this combination of app and calabash version. Rebuilding test server."
18
- calabash_build(app_path)
19
- end
20
-
21
-
22
15
  if app_path
16
+ unless File.exist?(test_server_path(app_path))
17
+ puts "No test server found for this combination of app and calabash version. Rebuilding test server."
18
+ calabash_build(app_path)
19
+ end
20
+
23
21
  test_server_path = test_server_path(app_path)
24
22
  env = "PACKAGE_NAME=#{package_name(app_path)} "\
25
23
  "TEST_PACKAGE_NAME=#{package_name(test_server_path)} "\
@@ -8,9 +8,9 @@ Before do |scenario|
8
8
  feature_name = scenario.feature.name
9
9
  if FeatureNameMemory.feature_name != feature_name
10
10
  log "Is first scenario - reinstalling apps"
11
- uninstall_app(ENV["TEST_APP_PATH"])
11
+
12
+ uninstall_apps
12
13
  install_app(ENV["TEST_APP_PATH"])
13
- uninstall_app(ENV["APP_PATH"])
14
14
  install_app(ENV["APP_PATH"])
15
15
  FeatureNameMemory.feature_name = feature_name
16
16
  end
@@ -171,7 +171,10 @@ module Operations
171
171
  result = JSON.parse(result)
172
172
  if not result["success"] then
173
173
  take_screenshot
174
- raise result["message"].to_s
174
+ if result["bonusInformation"] && result["bonusInformation"].size > 0 && result["bonusInformation"][0].include?("Exception")
175
+ log result["bonusInformation"][0]
176
+ end
177
+ raise "Step unsuccessful: #{result["message"]}"
175
178
  end
176
179
  return result
177
180
  end
@@ -1,6 +1,6 @@
1
1
  module Calabash
2
2
  module Android
3
- VERSION = "0.2.3"
4
- FRAMEWORK_VERSION = "0.2.3"
3
+ VERSION = "0.2.4"
4
+ FRAMEWORK_VERSION = "0.2.4"
5
5
  end
6
6
  end
@@ -1,5 +1,8 @@
1
1
  package sh.calaba.instrumentationbackend;
2
2
 
3
+ import java.io.BufferedWriter;
4
+ import java.io.CharArrayWriter;
5
+ import java.io.PrintWriter;
3
6
  import java.util.ArrayList;
4
7
  import java.util.List;
5
8
 
@@ -51,7 +54,11 @@ public class Result {
51
54
  }
52
55
 
53
56
  public static Result fromThrowable(Throwable t) {
54
- return new Result(false, t.getMessage());
57
+ Result r = new Result(false, t.getMessage());
58
+ CharArrayWriter caw = new CharArrayWriter();
59
+ t.printStackTrace(new PrintWriter(caw));
60
+ r.addBonusInformation("Exception stack trace:\n" + caw.toString());
61
+ return r;
55
62
  }
56
63
 
57
64
  public static Result successResult() {
@@ -39,7 +39,7 @@ public class CalabashChromeClient extends WebChromeClient {
39
39
  if (message != null && message.startsWith("calabash:")) {
40
40
  r.confirm("CALABASH_ACK");
41
41
  System.out.println("onJsPrompt: " + message);
42
- result.message = message.replace("calabash:", "");
42
+ result.message = message.replaceFirst("calabash:", "");
43
43
  eventHandled.open();
44
44
 
45
45
  return true;
@@ -1,6 +1,7 @@
1
1
  package sh.calaba.instrumentationbackend.actions.webview;
2
2
 
3
3
 
4
+ import sh.calaba.instrumentationbackend.InstrumentationBackend;
4
5
  import sh.calaba.instrumentationbackend.Result;
5
6
  import sh.calaba.instrumentationbackend.actions.Action;
6
7
  import android.webkit.WebView;
@@ -10,23 +11,28 @@ public class DumpBodyHtml implements Action {
10
11
  @Override
11
12
  public Result execute(String... args) {
12
13
 
13
- Result result = Result.successResult();
14
+ final Result result = Result.successResult();
14
15
  for (CalabashChromeClient ccc : CalabashChromeClient.findAndPrepareWebViews()) {
15
- WebView webView = ccc.getWebView();
16
-
17
- webView.loadUrl("javascript:(function() {" +
18
- "prompt('calabash:' + document.body.innerHTML);" +
19
- "})()");
16
+ final WebView webView = ccc.getWebView();
17
+ InstrumentationBackend.solo.getCurrentActivity().runOnUiThread(new Runnable() {
18
+ @Override
19
+ public void run() {
20
20
 
21
- String r = ccc.getResult();
22
- System.out.println("Html:");
23
- System.out.println("" + r);
24
- result.addBonusInformation(r);
25
- }
26
- return result;
27
- }
21
+ webView.loadUrl("javascript:(function() {" +
22
+ "prompt('calabash:' + document.body.innerHTML);" +
23
+ "})()");
24
+ }
25
+ });
26
+ String r = ccc.getResult();
27
+ System.out.println("Html:");
28
+ System.out.println("" + r);
29
+ result.addBonusInformation(r);
28
30
 
29
- @Override
31
+ return result;
32
+
33
+ }
34
+ return new Result(false, "No WebView found");
35
+ }
30
36
  public String key() {
31
37
  return "dump_body_html";
32
38
  }
@@ -1,6 +1,7 @@
1
1
  package sh.calaba.instrumentationbackend.actions.webview;
2
2
 
3
3
 
4
+ import sh.calaba.instrumentationbackend.InstrumentationBackend;
4
5
  import sh.calaba.instrumentationbackend.Result;
5
6
  import sh.calaba.instrumentationbackend.actions.Action;
6
7
  import android.webkit.WebView;
@@ -12,21 +13,27 @@ public class DumpHtml implements Action {
12
13
 
13
14
  Result result = Result.successResult();
14
15
  for (CalabashChromeClient ccc : CalabashChromeClient.findAndPrepareWebViews()) {
15
- WebView webView = ccc.getWebView();
16
-
17
- webView.loadUrl("javascript:(function() {" +
18
- "prompt('calabash:' + document.body.parentNode.innerHTML);" +
19
- "})()");
20
-
21
- String r = ccc.getResult();
22
- System.out.println("Html:");
23
- System.out.println("" + r);
24
- result.addBonusInformation(r);
25
- }
26
- return result;
16
+ final WebView webView = ccc.getWebView();
17
+
18
+ InstrumentationBackend.solo.getCurrentActivity().runOnUiThread(new Runnable() {
19
+ @Override
20
+ public void run() {
21
+
22
+ webView.loadUrl("javascript:(function() {" +
23
+ "prompt('calabash:' + document.body.parentNode.innerHTML);" +
24
+ "})()");
25
+ }
26
+ });
27
+ String r = ccc.getResult();
28
+ System.out.println("Html:");
29
+ System.out.println("" + r);
30
+ result.addBonusInformation(r);
31
+ }
32
+
33
+ return result;
27
34
  }
28
35
 
29
- @Override
36
+ @Override
30
37
  public String key() {
31
38
  return "dump_html";
32
39
  }
@@ -0,0 +1,41 @@
1
+ package sh.calaba.instrumentationbackend.actions.webview;
2
+
3
+ import sh.calaba.instrumentationbackend.InstrumentationBackend;
4
+ import sh.calaba.instrumentationbackend.Result;
5
+ import sh.calaba.instrumentationbackend.actions.Action;
6
+ import android.webkit.WebView;
7
+
8
+ public class ExecuteJavascript implements Action {
9
+
10
+ @Override
11
+ public Result execute(String... args) {
12
+
13
+ CalabashChromeClient ccc = CalabashChromeClient.findAndPrepareWebViews().get(0);
14
+ final WebView webView = ccc.getWebView();
15
+ final String script = "javascript:(function() {"
16
+ + "var result;"
17
+ + args[0] + ";"
18
+ + "prompt('calabash:'+result);" + "})()";
19
+
20
+ System.out.println("execute javascript: " + script);
21
+
22
+ InstrumentationBackend.solo.getCurrentActivity().runOnUiThread(
23
+ new Runnable() {
24
+ @Override
25
+ public void run() {
26
+ webView.loadUrl(script);
27
+ }
28
+ });
29
+
30
+ String r = ccc.getResult();
31
+ System.out.println("javascript result: " + r);
32
+
33
+ return new Result(true, r);
34
+ }
35
+
36
+ @Override
37
+ public String key() {
38
+ return "execute_javascript";
39
+ }
40
+
41
+ }
@@ -0,0 +1,22 @@
1
+ package sh.calaba.instrumentationbackend.actions.webview;
2
+
3
+ import sh.calaba.instrumentationbackend.Result;
4
+ import sh.calaba.instrumentationbackend.actions.Action;
5
+ import android.webkit.WebView;
6
+
7
+ public class GetLoadProgress implements Action {
8
+
9
+ @Override
10
+ public Result execute(String... args) {
11
+ CalabashChromeClient ccc = CalabashChromeClient.findAndPrepareWebViews().get(0);
12
+ final WebView webView = ccc.getWebView();
13
+ int p = webView.getProgress();
14
+ return new Result(true, "" + p);
15
+ }
16
+
17
+ @Override
18
+ public String key() {
19
+ return "get_load_progress";
20
+ }
21
+
22
+ }
@@ -0,0 +1,21 @@
1
+ package sh.calaba.instrumentationbackend.actions.webview;
2
+
3
+ import sh.calaba.instrumentationbackend.Result;
4
+ import sh.calaba.instrumentationbackend.actions.Action;
5
+ import android.webkit.WebView;
6
+
7
+ public class GetUrl implements Action {
8
+
9
+ @Override
10
+ public Result execute(String... args) {
11
+ CalabashChromeClient ccc = CalabashChromeClient.findAndPrepareWebViews().get(0);
12
+ WebView webView = ccc.getWebView();
13
+ return new Result(true, webView.getUrl());
14
+ }
15
+
16
+ @Override
17
+ public String key() {
18
+ return "get_url";
19
+ }
20
+
21
+ }
@@ -1,6 +1,7 @@
1
1
  package sh.calaba.instrumentationbackend.actions.webview;
2
2
 
3
3
 
4
+ import sh.calaba.instrumentationbackend.InstrumentationBackend;
4
5
  import sh.calaba.instrumentationbackend.Result;
5
6
  import sh.calaba.instrumentationbackend.TestHelpers;
6
7
  import sh.calaba.instrumentationbackend.actions.Action;
@@ -10,32 +11,39 @@ import android.webkit.WebView;
10
11
  public class PressByCssSelector implements Action {
11
12
 
12
13
  @Override
13
- public Result execute(String... args) {
14
+ public Result execute(final String... args) {
14
15
  for (CalabashChromeClient ccc : CalabashChromeClient.findAndPrepareWebViews()) {
15
- WebView webView = ccc.getWebView();
16
-
17
- webView.loadUrl("javascript:(function() {" +
18
- "var element = document.querySelector(\"" + args[0] + "\");" +
19
- "if (element != null) {" +
20
- " var oEvent = document.createEvent ('MouseEvent');" +
21
- " oEvent.initMouseEvent('click', true, true,window, 1, 1, 1, 1, 1, false, false, false, false, 0, element);" +
22
- " element.dispatchEvent( oEvent );" +
23
- " prompt('calabash:true');" +
24
- "}" +
25
- "prompt('calabash:false');" +
26
- "})()");
27
-
28
- String r = ccc.getResult();
29
- System.out.println("clickOnSelector: " + r);
30
- if ("true".equals(r)) {
31
- TestHelpers.wait(0.3);
32
- return Result.successResult();
33
- }
34
- }
35
- return new Result(false, "");
36
- }
37
-
38
- @Override
16
+ final WebView webView = ccc.getWebView();
17
+ InstrumentationBackend.solo.getCurrentActivity().runOnUiThread(new Runnable() {
18
+ @Override
19
+ public void run() {
20
+
21
+
22
+ webView.loadUrl("javascript:(function() {" +
23
+ "var element = document.querySelector(\"" + args[0] + "\");" +
24
+ "if (element != null) {" +
25
+ " var oEvent = document.createEvent ('MouseEvent');" +
26
+ " oEvent.initMouseEvent('click', true, true,window, 1, 1, 1, 1, 1, false, false, false, false, 0, element);" +
27
+ " element.dispatchEvent( oEvent );" +
28
+ " prompt('calabash:true');" +
29
+ "}" +
30
+ "prompt('calabash:false');" +
31
+ "})()");
32
+ }
33
+ });
34
+
35
+ String r = ccc.getResult();
36
+ System.out.println("clickOnSelector: " + r);
37
+ if ("true".equals(r)) {
38
+ TestHelpers.wait(0.3);
39
+ return Result.successResult();
40
+ }
41
+ }
42
+
43
+ return new Result(false,"No WebView Found");
44
+ }
45
+
46
+ @Override
39
47
  public String key() {
40
48
  return "click_by_selector";
41
49
  }
@@ -1,6 +1,7 @@
1
1
  package sh.calaba.instrumentationbackend.actions.webview;
2
2
 
3
3
 
4
+ import sh.calaba.instrumentationbackend.InstrumentationBackend;
4
5
  import sh.calaba.instrumentationbackend.Result;
5
6
  import sh.calaba.instrumentationbackend.TestHelpers;
6
7
  import sh.calaba.instrumentationbackend.actions.Action;
@@ -16,26 +17,34 @@ public class SetPropertyByCssSelector implements Action {
16
17
  String value = args[2];
17
18
 
18
19
  for (CalabashChromeClient ccc : CalabashChromeClient.findAndPrepareWebViews()) {
19
- WebView webView = ccc.getWebView();
20
+ final WebView webView = ccc.getWebView();
20
21
 
21
- String assignment = "document.querySelector(\"" + cssSelector + "\")." + propertyName + " = " + value + ";";
22
+ final String assignment = "document.querySelector(\"" + cssSelector + "\")." + propertyName + " = " + value + ";";
22
23
  System.out.println(assignment);
23
- webView.loadUrl("javascript:(function() {" +
24
- assignment +
25
- "prompt('calabash:true');" +
26
- "})()");
27
-
28
- String r = ccc.getResult();
29
- System.out.println("setPropertyByCssSelector: " + r);
30
- if ("true".equals(r)) {
31
- TestHelpers.wait(0.3);
32
- return Result.successResult();
33
- }
34
- }
35
- return new Result(false, "");
36
- }
37
24
 
38
- @Override
25
+ InstrumentationBackend.solo.getCurrentActivity().runOnUiThread(new Runnable() {
26
+ @Override
27
+ public void run() {
28
+
29
+ webView.loadUrl("javascript:(function() {" +
30
+ assignment +
31
+ "prompt('calabash:true');" +
32
+ "})()");
33
+
34
+ }
35
+ });
36
+ String r = ccc.getResult();
37
+ System.out.println("setPropertyByCssSelector: " + r);
38
+ if ("true".equals(r)) {
39
+ TestHelpers.wait(0.3);
40
+ return Result.successResult();
41
+ }
42
+ }
43
+
44
+ return new Result(false,"No WebView found");
45
+ }
46
+
47
+ @Override
39
48
  public String key() {
40
49
  return "set_property_by_css_selector";
41
50
  }
@@ -31,9 +31,9 @@ public class SetText implements Action {
31
31
  //TODO: Hack! Should be serialized instead of removed
32
32
  firstElement.remove("class");
33
33
  firstElement.remove("html");
34
- String firstElemntJson = QueryHelper.toJsonString(firstElement);
34
+ String firstElementJson = QueryHelper.toJsonString(firstElement);
35
35
 
36
- String result = QueryHelper.executeJavascriptInWebview("set_text.js", firstElemntJson, args[2]);
36
+ String result = QueryHelper.executeJavascriptInWebview("set_text.js", firstElementJson, args[2]);
37
37
  return new Result(true, result);
38
38
  } catch (Exception e) {
39
39
  throw new RuntimeException(e);
@@ -16,25 +16,25 @@ public class Touch implements Action {
16
16
 
17
17
  @Override
18
18
  public Result execute(String... args) {
19
-
20
- try {
21
- String queryResult = QueryHelper.executeJavascriptInWebview("calabash.js", args[1], args[0]);
22
- List<HashMap<String,Object>> p = new ObjectMapper().readValue(queryResult, new TypeReference<List<HashMap<String,Object>>>(){});
23
-
24
- if (p.isEmpty()) {
25
- throw new RuntimeException("No element found");
26
- }
27
-
28
- Map<String, Object> firstRect = QueryHelper.findFirstVisibleRectangle(p);
29
-
30
- float[] screenCoordinates = QueryHelper.getScreenCoordinatesForCenter(firstRect);
31
-
32
- InstrumentationBackend.solo.clickOnScreen(screenCoordinates[0], screenCoordinates[1]);
33
- } catch (Exception e) {
34
- throw new RuntimeException(e);
35
- }
36
-
37
- return new Result(true, "");
19
+
20
+ try {
21
+ String queryResult = QueryHelper.executeJavascriptInWebview("calabash.js", args[1], args[0]);
22
+ List<HashMap<String,Object>> p = new ObjectMapper().readValue(queryResult, new TypeReference<List<HashMap<String,Object>>>(){});
23
+
24
+ if (p.isEmpty()) {
25
+ throw new RuntimeException("No element found");
26
+ }
27
+
28
+ Map<String, Object> firstRect = QueryHelper.findFirstVisibleRectangle(p);
29
+
30
+ float[] screenCoordinates = QueryHelper.getScreenCoordinatesForCenter(firstRect);
31
+
32
+ InstrumentationBackend.solo.clickOnScreen(screenCoordinates[0], screenCoordinates[1]);
33
+ } catch (Exception e) {
34
+ throw new RuntimeException(e);
35
+ }
36
+
37
+ return new Result(true, "");
38
38
  }
39
39
 
40
40
  @Override
metadata CHANGED
@@ -1,72 +1,75 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: calabash-android
3
- version: !ruby/object:Gem::Version
4
- version: 0.2.3
3
+ version: !ruby/object:Gem::Version
4
+ hash: 31
5
5
  prerelease:
6
+ segments:
7
+ - 0
8
+ - 2
9
+ - 4
10
+ version: 0.2.4
6
11
  platform: ruby
7
- authors:
12
+ authors:
8
13
  - Jonas Maturana Larsen
9
14
  autorequire:
10
15
  bindir: bin
11
16
  cert_chain: []
12
- date: 2012-08-02 00:00:00.000000000 Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
17
+
18
+ date: 2012-08-03 00:00:00 +02:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
15
22
  name: cucumber
16
- requirement: !ruby/object:Gem::Requirement
17
- none: false
18
- requirements:
19
- - - ! '>='
20
- - !ruby/object:Gem::Version
21
- version: '0'
22
- type: :runtime
23
23
  prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
25
  none: false
26
- requirements:
27
- - - ! '>='
28
- - !ruby/object:Gem::Version
29
- version: '0'
30
- - !ruby/object:Gem::Dependency
31
- name: json
32
- requirement: !ruby/object:Gem::Requirement
33
- none: false
34
- requirements:
35
- - - ! '>='
36
- - !ruby/object:Gem::Version
37
- version: '0'
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ hash: 3
30
+ segments:
31
+ - 0
32
+ version: "0"
38
33
  type: :runtime
34
+ version_requirements: *id001
35
+ - !ruby/object:Gem::Dependency
36
+ name: json
39
37
  prerelease: false
40
- version_requirements: !ruby/object:Gem::Requirement
38
+ requirement: &id002 !ruby/object:Gem::Requirement
41
39
  none: false
42
- requirements:
43
- - - ! '>='
44
- - !ruby/object:Gem::Version
45
- version: '0'
46
- - !ruby/object:Gem::Dependency
47
- name: slowhandcuke
48
- requirement: !ruby/object:Gem::Requirement
49
- none: false
50
- requirements:
51
- - - ! '>='
52
- - !ruby/object:Gem::Version
53
- version: '0'
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ hash: 3
44
+ segments:
45
+ - 0
46
+ version: "0"
54
47
  type: :runtime
48
+ version_requirements: *id002
49
+ - !ruby/object:Gem::Dependency
50
+ name: slowhandcuke
55
51
  prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
52
+ requirement: &id003 !ruby/object:Gem::Requirement
57
53
  none: false
58
- requirements:
59
- - - ! '>='
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- description: ! 'calabash-android drives tests for native and hybrid Android apps. '
63
- email:
54
+ requirements:
55
+ - - ">="
56
+ - !ruby/object:Gem::Version
57
+ hash: 3
58
+ segments:
59
+ - 0
60
+ version: "0"
61
+ type: :runtime
62
+ version_requirements: *id003
63
+ description: "calabash-android drives tests for native and hybrid Android apps. "
64
+ email:
64
65
  - jonas@lesspainful.com
65
- executables:
66
+ executables:
66
67
  - calabash-android
67
68
  extensions: []
69
+
68
70
  extra_rdoc_files: []
69
- files:
71
+
72
+ files:
70
73
  - .calabash_settings
71
74
  - CHANGES.txt
72
75
  - Gemfile
@@ -190,6 +193,9 @@ files:
190
193
  - test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/DumpBodyHtml.java
191
194
  - test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/DumpHtml.java
192
195
  - test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/EnterTextByCssSelector.java
196
+ - test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/ExecuteJavascript.java
197
+ - test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/GetLoadProgress.java
198
+ - test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/GetUrl.java
193
199
  - test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/PressByCssSelector.java
194
200
  - test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/Query.java
195
201
  - test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/QueryHelper.java
@@ -605,28 +611,39 @@ files:
605
611
  - test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/package-info.java
606
612
  - test-server/calabash-js/src/calabash.js
607
613
  - test-server/calabash-js/src/set_text.js
614
+ has_rdoc: true
608
615
  homepage: http://github.com/calabash
609
616
  licenses: []
617
+
610
618
  post_install_message:
611
619
  rdoc_options: []
612
- require_paths:
620
+
621
+ require_paths:
613
622
  - lib
614
- required_ruby_version: !ruby/object:Gem::Requirement
623
+ required_ruby_version: !ruby/object:Gem::Requirement
615
624
  none: false
616
- requirements:
617
- - - ! '>='
618
- - !ruby/object:Gem::Version
619
- version: '0'
620
- required_rubygems_version: !ruby/object:Gem::Requirement
625
+ requirements:
626
+ - - ">="
627
+ - !ruby/object:Gem::Version
628
+ hash: 3
629
+ segments:
630
+ - 0
631
+ version: "0"
632
+ required_rubygems_version: !ruby/object:Gem::Requirement
621
633
  none: false
622
- requirements:
623
- - - ! '>='
624
- - !ruby/object:Gem::Version
625
- version: '0'
634
+ requirements:
635
+ - - ">="
636
+ - !ruby/object:Gem::Version
637
+ hash: 3
638
+ segments:
639
+ - 0
640
+ version: "0"
626
641
  requirements: []
642
+
627
643
  rubyforge_project:
628
- rubygems_version: 1.8.23
644
+ rubygems_version: 1.6.2
629
645
  signing_key:
630
646
  specification_version: 3
631
647
  summary: Client for calabash-android for automated functional testing on Android
632
648
  test_files: []
649
+