calabash-android 0.4.0.pre6 → 0.4.0.pre7
Sign up to get free protection for your applications and to get access to all the features.
- data/bin/calabash-android +7 -0
- data/bin/calabash-android-build.rb +1 -1
- data/bin/calabash-android-console.rb +1 -1
- data/bin/calabash-android-run.rb +1 -1
- data/calabash-android.gemspec +1 -0
- data/irbrc +2 -0
- data/lib/calabash-android/helpers.rb +4 -2
- data/lib/calabash-android/lib/TestServer.apk +0 -0
- data/lib/calabash-android/operations.rb +31 -22
- data/lib/calabash-android/version.rb +1 -1
- data/test-server/instrumentation-backend/.classpath +0 -1
- data/test-server/instrumentation-backend/antlr/UIQuery.g +11 -2
- data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/Command.java +4 -3
- data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/FranklyResult.java +95 -0
- data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/Result.java +7 -1
- data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/HttpServer.java +15 -23
- data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/location/FakeGPSLocation.java +13 -10
- data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/CalabashChromeClient.java +136 -36
- data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/DumpBodyHtml.java +38 -18
- data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/DumpHtml.java +38 -16
- data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/EnterTextByCssSelector.java +94 -66
- data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/ExecuteAsyncJavascript.java +55 -33
- data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/ExecuteJavascript.java +54 -31
- data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/JavaScriptOperation.java +44 -0
- data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/PressByCssSelector.java +52 -27
- data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/QueryHelper.java +39 -32
- data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/ScrollTo.java +56 -41
- data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/SetPropertyByCssSelector.java +50 -25
- data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/SetText.java +19 -22
- data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/CompletedFuture.java +40 -0
- data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/InvocationOperation.java +201 -0
- data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/Operation.java +7 -0
- data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/PropertyOperation.java +56 -0
- data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/Query.java +144 -72
- data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/UIQuery.tokens +15 -12
- data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/UIQueryResultVoid.java +22 -0
- data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/ViewMapper.java +38 -11
- data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/antlr/UIQueryLexer.java +226 -109
- data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/antlr/UIQueryParser.java +237 -84
- data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/ast/PartialFutureList.java +100 -0
- data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/ast/UIQueryAST.java +1 -1
- data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/ast/UIQueryASTClassName.java +26 -22
- data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/ast/UIQueryASTWith.java +170 -102
- data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/ast/UIQueryEvaluator.java +54 -155
- data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/ast/UIQueryUtils.java +97 -2
- data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/ast/UIQueryVisibility.java +32 -0
- metadata +27 -5
- data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/Query.java +0 -24
- data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/Touch.java +0 -44
- data/test-server/instrumentation-backend/tests/sh/calaba/instrumentationbackend/query/tests/UIQueryTest.java +0 -134
@@ -1,24 +0,0 @@
|
|
1
|
-
package sh.calaba.instrumentationbackend.actions.webview;
|
2
|
-
|
3
|
-
|
4
|
-
import sh.calaba.instrumentationbackend.Result;
|
5
|
-
import sh.calaba.instrumentationbackend.actions.Action;
|
6
|
-
|
7
|
-
|
8
|
-
public class Query implements Action {
|
9
|
-
|
10
|
-
@Override
|
11
|
-
public Result execute(String... args) {
|
12
|
-
|
13
|
-
String result = QueryHelper.executeJavascriptInWebview("calabash.js", args[1], args[0]);
|
14
|
-
return new Result(true, result);
|
15
|
-
}
|
16
|
-
|
17
|
-
@Override
|
18
|
-
public String key() {
|
19
|
-
return "query";
|
20
|
-
}
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
}
|
@@ -1,44 +0,0 @@
|
|
1
|
-
package sh.calaba.instrumentationbackend.actions.webview;
|
2
|
-
|
3
|
-
|
4
|
-
import java.util.HashMap;
|
5
|
-
import java.util.List;
|
6
|
-
import java.util.Map;
|
7
|
-
|
8
|
-
import sh.calaba.instrumentationbackend.InstrumentationBackend;
|
9
|
-
import sh.calaba.instrumentationbackend.Result;
|
10
|
-
import sh.calaba.instrumentationbackend.actions.Action;
|
11
|
-
import sh.calaba.org.codehaus.jackson.map.ObjectMapper;
|
12
|
-
import sh.calaba.org.codehaus.jackson.type.TypeReference;
|
13
|
-
|
14
|
-
|
15
|
-
public class Touch implements Action {
|
16
|
-
|
17
|
-
@Override
|
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, "");
|
38
|
-
}
|
39
|
-
|
40
|
-
@Override
|
41
|
-
public String key() {
|
42
|
-
return "touch";
|
43
|
-
}
|
44
|
-
}
|
@@ -1,134 +0,0 @@
|
|
1
|
-
package sh.calaba.instrumentationbackend.query.tests;
|
2
|
-
|
3
|
-
import java.util.Arrays;
|
4
|
-
import java.util.Collections;
|
5
|
-
import java.util.List;
|
6
|
-
|
7
|
-
import junit.framework.TestCase;
|
8
|
-
import sh.calaba.instrumentationbackend.query.ast.UIQueryAST;
|
9
|
-
import sh.calaba.instrumentationbackend.query.ast.UIQueryASTClassName;
|
10
|
-
import sh.calaba.instrumentationbackend.query.ast.UIQueryEvaluator;
|
11
|
-
|
12
|
-
public class UIQueryTest extends TestCase {
|
13
|
-
|
14
|
-
@SuppressWarnings("rawtypes")
|
15
|
-
public void testEvaluateQueryOnEmpty() {
|
16
|
-
String query = "button";
|
17
|
-
List res = UIQueryEvaluator.evaluateQuery(query, Collections.EMPTY_LIST);
|
18
|
-
assertEquals(0, res.size());
|
19
|
-
}
|
20
|
-
|
21
|
-
public void testConvertSimpleQueryToUIQueryAst() throws Exception {
|
22
|
-
List<UIQueryAST> parsedQuery = UIQueryEvaluator.parseQuery("button");
|
23
|
-
assertEquals(1, parsedQuery.size());
|
24
|
-
|
25
|
-
UIQueryAST uiQueryAST = parsedQuery.get(0);
|
26
|
-
|
27
|
-
assertTrue(uiQueryAST instanceof UIQueryASTClassName);
|
28
|
-
assertEquals("button", ((UIQueryASTClassName)uiQueryAST).simpleClassName);
|
29
|
-
|
30
|
-
}
|
31
|
-
|
32
|
-
public void testConvertQualifiedQueryToUIQueryAst() throws Exception {
|
33
|
-
List<UIQueryAST> parsedQuery = UIQueryEvaluator.parseQuery("junit.framework.TestCase");
|
34
|
-
assertEquals(1, parsedQuery.size());
|
35
|
-
|
36
|
-
UIQueryAST uiQueryAST = parsedQuery.get(0);
|
37
|
-
|
38
|
-
assertTrue(uiQueryAST instanceof UIQueryASTClassName);
|
39
|
-
assertEquals(junit.framework.TestCase.class, ((UIQueryASTClassName)uiQueryAST).qualifiedClassName);
|
40
|
-
}
|
41
|
-
|
42
|
-
public void testConvertComposedQueryToUIQueryAst() throws Exception {
|
43
|
-
List<UIQueryAST> parsedQuery = UIQueryEvaluator.parseQuery("view button");
|
44
|
-
assertEquals(2, parsedQuery.size());
|
45
|
-
|
46
|
-
UIQueryAST uiQueryASTFirst = parsedQuery.get(0);
|
47
|
-
UIQueryAST uiQueryASTSecond = parsedQuery.get(1);
|
48
|
-
|
49
|
-
assertTrue(uiQueryASTFirst instanceof UIQueryASTClassName);
|
50
|
-
assertTrue(uiQueryASTSecond instanceof UIQueryASTClassName);
|
51
|
-
|
52
|
-
assertEquals("view", ((UIQueryASTClassName)uiQueryASTFirst).simpleClassName);
|
53
|
-
assertEquals("button", ((UIQueryASTClassName)uiQueryASTSecond).simpleClassName);
|
54
|
-
|
55
|
-
}
|
56
|
-
|
57
|
-
|
58
|
-
private static class View {
|
59
|
-
@SuppressWarnings("rawtypes")
|
60
|
-
List views;
|
61
|
-
|
62
|
-
@SuppressWarnings("rawtypes")
|
63
|
-
public View(List views) {
|
64
|
-
super();
|
65
|
-
this.views = views;
|
66
|
-
}
|
67
|
-
public Object getChildAt(int idx)
|
68
|
-
{
|
69
|
-
return this.views.get(idx);
|
70
|
-
}
|
71
|
-
@SuppressWarnings("unused")
|
72
|
-
public Object getChildCount() {return this.views.size();}
|
73
|
-
|
74
|
-
}
|
75
|
-
private static class SubView extends View {
|
76
|
-
|
77
|
-
@SuppressWarnings("rawtypes")
|
78
|
-
public SubView(List views) {
|
79
|
-
super(views);
|
80
|
-
}
|
81
|
-
|
82
|
-
}
|
83
|
-
private static class Button extends View {
|
84
|
-
|
85
|
-
@SuppressWarnings("rawtypes")
|
86
|
-
public Button(List views) {
|
87
|
-
super(views);
|
88
|
-
// TODO Auto-generated constructor stub
|
89
|
-
}
|
90
|
-
|
91
|
-
}
|
92
|
-
|
93
|
-
@SuppressWarnings("rawtypes")
|
94
|
-
public void testEvaluateSimpleQuery() throws Exception {
|
95
|
-
List<View> views = setupViews();
|
96
|
-
|
97
|
-
List evaluateQuery = UIQueryEvaluator.evaluateQuery("subview", views);
|
98
|
-
assertEquals(1, evaluateQuery.size());
|
99
|
-
assertTrue(evaluateQuery.get(0) instanceof SubView);
|
100
|
-
|
101
|
-
List evaluateQueryButtons = UIQueryEvaluator.evaluateQuery("button", views);
|
102
|
-
assertEquals(3, evaluateQueryButtons.size());
|
103
|
-
assertTrue(evaluateQueryButtons.get(0) instanceof Button);
|
104
|
-
assertTrue(evaluateQueryButtons.get(1) instanceof Button);
|
105
|
-
assertTrue(evaluateQueryButtons.get(2) instanceof Button);
|
106
|
-
|
107
|
-
}
|
108
|
-
|
109
|
-
|
110
|
-
@SuppressWarnings("rawtypes")
|
111
|
-
public void testEvaluateComposedQuery() throws Exception {
|
112
|
-
List<View> views = setupViews();
|
113
|
-
SubView vv = (SubView) views.get(1);
|
114
|
-
Button b = (Button) vv.getChildAt(0);
|
115
|
-
|
116
|
-
List evaluateQuery = UIQueryEvaluator.evaluateQuery("subview button", views);
|
117
|
-
assertEquals(1, evaluateQuery.size());
|
118
|
-
assertTrue(evaluateQuery.get(0) instanceof Button);
|
119
|
-
assertEquals(evaluateQuery.get(0), b);
|
120
|
-
|
121
|
-
|
122
|
-
}
|
123
|
-
|
124
|
-
private List<View> setupViews() {
|
125
|
-
return Arrays.asList(new View[]{
|
126
|
-
new Button(Collections.EMPTY_LIST),
|
127
|
-
new SubView(Arrays.asList(new View[]{
|
128
|
-
new Button(Collections.EMPTY_LIST)
|
129
|
-
})),
|
130
|
-
new Button(Collections.EMPTY_LIST)
|
131
|
-
});
|
132
|
-
}
|
133
|
-
|
134
|
-
}
|