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.
- data/CHANGES.txt +10 -0
- data/bin/calabash-android +1 -1
- data/bin/calabash-android-run.rb +6 -8
- data/features-skeleton/support/app_installation_hooks.rb +2 -2
- data/lib/calabash-android/operations.rb +4 -1
- data/lib/calabash-android/version.rb +2 -2
- data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/Result.java +8 -1
- data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/CalabashChromeClient.java +1 -1
- data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/DumpBodyHtml.java +20 -14
- data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/DumpHtml.java +20 -13
- data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/ExecuteJavascript.java +41 -0
- data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/GetLoadProgress.java +22 -0
- data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/GetUrl.java +21 -0
- data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/PressByCssSelector.java +33 -25
- data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/SetPropertyByCssSelector.java +26 -17
- data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/SetText.java +2 -2
- data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/Touch.java +19 -19
- 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
data/bin/calabash-android-run.rb
CHANGED
@@ -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
|
-
|
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
|
-
|
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,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
|
-
|
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.
|
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
|
-
|
18
|
-
|
19
|
-
"})()");
|
16
|
+
final WebView webView = ccc.getWebView();
|
17
|
+
InstrumentationBackend.solo.getCurrentActivity().runOnUiThread(new Runnable() {
|
18
|
+
@Override
|
19
|
+
public void run() {
|
20
20
|
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
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
|
-
|
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
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
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
|
-
|
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
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
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
|
-
|
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
|
34
|
+
String firstElementJson = QueryHelper.toJsonString(firstElement);
|
35
35
|
|
36
|
-
String result = QueryHelper.executeJavascriptInWebview("set_text.js",
|
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
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
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
|
-
|
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
|
-
|
13
|
-
|
14
|
-
|
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
|
-
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
25
|
none: false
|
26
|
-
requirements:
|
27
|
-
- -
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
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
|
-
|
38
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
41
39
|
none: false
|
42
|
-
requirements:
|
43
|
-
- -
|
44
|
-
- !ruby/object:Gem::Version
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
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
|
-
|
52
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
57
53
|
none: false
|
58
|
-
requirements:
|
59
|
-
- -
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
|
62
|
-
|
63
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
620
|
-
|
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
|
-
|
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.
|
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
|
+
|