calabash-android 0.2.3 → 0.2.4

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