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.
- 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
|
+
|