calabash-android 0.4.7.pre2 → 0.4.7.pre3

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f123fa2bea595521ceb0b48e3e3cf1a14fd9af0d
4
- data.tar.gz: fa364e921ab885cf9be776f70f77f72cd9405a7b
3
+ metadata.gz: 079fd75ffa1a41cf381a4f8cd72b1cadbee2e04d
4
+ data.tar.gz: a183f3c9dc459adef3d13f067c868e2c6016dda5
5
5
  SHA512:
6
- metadata.gz: aca7e7508a03828614d624bb64fe38a42838a83d8c692db21a8e0c6ca13aefa7ef536dfc778fa547156f2536270ed17e608c467ff24b89a31649aee4d87406a6
7
- data.tar.gz: d80a3ac4b35bb3958f5d27e6d6be44881a0549594ead5f543965426c1273e9b299218f3e5cc5b5407cf5ef267372641f773fd6c49361894d78993e91031db329
6
+ metadata.gz: 2f7d86ad6876dc8c317385069746046d591d55730aabe3a919ef95e1287405c2c0bf34f81b9a77e18fadc0a60bd16fc3c21486a304302a2b8c5497142a0ee5c1
7
+ data.tar.gz: f6e8a2bae10aa4af04f535d4cd7a140ca6c8f83fd55cf5dd4c6e12501f4fcfc1c454615c5c2ef5261008a410cf632519c20b4c3a77a4d3938a0362d2b5178f34
@@ -63,6 +63,10 @@ module Operations
63
63
  default_device.install_app(app_path)
64
64
  end
65
65
 
66
+ def update_app(app_path)
67
+ default_device.update_app(app_path)
68
+ end
69
+
66
70
  def uninstall_apps
67
71
  default_device.uninstall_app(package_name(default_device.test_server_path))
68
72
  default_device.uninstall_app(package_name(default_device.app_path))
@@ -210,6 +214,19 @@ module Operations
210
214
  end
211
215
  end
212
216
 
217
+ def update_app(app_path)
218
+ cmd = "#{adb_command} install -r \"#{app_path}\""
219
+ log "Updating: #{app_path}"
220
+ result = `#{cmd}`
221
+ log "result: #{result}"
222
+ succeeded = result.include?("Success")
223
+
224
+ unless succeeded
225
+ ::Cucumber.wants_to_quit = true
226
+ raise "#{pn} did not get updated. Aborting!"
227
+ end
228
+ end
229
+
213
230
  def uninstall_app(package_name)
214
231
  log "Uninstalling: #{package_name}"
215
232
  log `#{adb_command} uninstall #{package_name}`
@@ -1,5 +1,5 @@
1
1
  module Calabash
2
2
  module Android
3
- VERSION = "0.4.7.pre2"
3
+ VERSION = "0.4.7.pre3"
4
4
  end
5
5
  end
@@ -360,9 +360,13 @@ public class NanoHTTPD
360
360
  {
361
361
  String contentType = "";
362
362
  String contentTypeHeader = header.getProperty("content-type");
363
- StringTokenizer st = new StringTokenizer( contentTypeHeader , "; " );
364
- if ( st.hasMoreTokens()) {
365
- contentType = st.nextToken();
363
+
364
+ StringTokenizer st = null;
365
+ if (contentTypeHeader != null) {
366
+ st = new StringTokenizer(contentTypeHeader, ",; ");
367
+ if (st.hasMoreTokens()) {
368
+ contentType = st.nextToken();
369
+ }
366
370
  }
367
371
 
368
372
  if (contentType.equalsIgnoreCase("multipart/form-data"))
@@ -1,5 +1,6 @@
1
1
  package sh.calaba.instrumentationbackend.actions.webview;
2
2
 
3
+ import java.lang.reflect.Field;
3
4
  import java.lang.reflect.Method;
4
5
  import java.util.ArrayList;
5
6
  import java.util.HashMap;
@@ -36,6 +37,22 @@ public class CalabashChromeClient extends WebChromeClient {
36
37
  } catch (Exception e) {
37
38
  throw new RuntimeException(e);
38
39
  }
40
+ } else {
41
+ try {
42
+
43
+ /*
44
+ * pick up the chromeClient from the webView
45
+ * this is required because in Jelly Bean there is no getWebChromeClient
46
+ * above sdk 16.This will help HTML5 hybrid application (Cordova) to pass the prompt messages
47
+ * to Native code. Previously the CalabashChromeClient did not populate the mWebChromeClient
48
+ * which lead to the Cordova.exec messages not forward to the Cordova ChromeClient.
49
+ */
50
+ Field field = getChromeClientField(webView.getClass());
51
+ field.setAccessible(true);
52
+ mWebChromeClient = (WebChromeClient) field.get(webView);
53
+ } catch (Exception e) {
54
+ throw new RuntimeException(e);
55
+ }
39
56
  }
40
57
 
41
58
  if ( Looper.getMainLooper().getThread() == Thread.currentThread()) {
@@ -50,6 +67,21 @@ public class CalabashChromeClient extends WebChromeClient {
50
67
  }
51
68
  }
52
69
 
70
+ /*
71
+ * returns the chromeClient from the WebView.
72
+ * recursively moves up to its superClass to get the chromeClient
73
+ * if there is no chromeClient it returns null.
74
+ */
75
+ private Field getChromeClientField(Class currentClass) {
76
+ if (currentClass == null)
77
+ return null;
78
+ try {
79
+ return currentClass.getDeclaredField("chromeClient");
80
+ } catch (NoSuchFieldException e) {
81
+ return getChromeClientField(currentClass.getSuperclass());
82
+ }
83
+ }
84
+
53
85
  @Override
54
86
  public boolean onJsPrompt(WebView view, String url, String message,
55
87
  String defaultValue, JsPromptResult r) {
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: calabash-android
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.7.pre2
4
+ version: 0.4.7.pre3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jonas Maturana Larsen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-06-08 00:00:00.000000000 Z
11
+ date: 2013-06-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cucumber