calabash-android 0.4.0.pre6 → 0.4.0.pre7

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.
Files changed (50) hide show
  1. data/bin/calabash-android +7 -0
  2. data/bin/calabash-android-build.rb +1 -1
  3. data/bin/calabash-android-console.rb +1 -1
  4. data/bin/calabash-android-run.rb +1 -1
  5. data/calabash-android.gemspec +1 -0
  6. data/irbrc +2 -0
  7. data/lib/calabash-android/helpers.rb +4 -2
  8. data/lib/calabash-android/lib/TestServer.apk +0 -0
  9. data/lib/calabash-android/operations.rb +31 -22
  10. data/lib/calabash-android/version.rb +1 -1
  11. data/test-server/instrumentation-backend/.classpath +0 -1
  12. data/test-server/instrumentation-backend/antlr/UIQuery.g +11 -2
  13. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/Command.java +4 -3
  14. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/FranklyResult.java +95 -0
  15. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/Result.java +7 -1
  16. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/HttpServer.java +15 -23
  17. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/location/FakeGPSLocation.java +13 -10
  18. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/CalabashChromeClient.java +136 -36
  19. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/DumpBodyHtml.java +38 -18
  20. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/DumpHtml.java +38 -16
  21. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/EnterTextByCssSelector.java +94 -66
  22. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/ExecuteAsyncJavascript.java +55 -33
  23. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/ExecuteJavascript.java +54 -31
  24. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/JavaScriptOperation.java +44 -0
  25. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/PressByCssSelector.java +52 -27
  26. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/QueryHelper.java +39 -32
  27. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/ScrollTo.java +56 -41
  28. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/SetPropertyByCssSelector.java +50 -25
  29. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/SetText.java +19 -22
  30. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/CompletedFuture.java +40 -0
  31. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/InvocationOperation.java +201 -0
  32. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/Operation.java +7 -0
  33. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/PropertyOperation.java +56 -0
  34. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/Query.java +144 -72
  35. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/UIQuery.tokens +15 -12
  36. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/UIQueryResultVoid.java +22 -0
  37. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/ViewMapper.java +38 -11
  38. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/antlr/UIQueryLexer.java +226 -109
  39. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/antlr/UIQueryParser.java +237 -84
  40. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/ast/PartialFutureList.java +100 -0
  41. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/ast/UIQueryAST.java +1 -1
  42. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/ast/UIQueryASTClassName.java +26 -22
  43. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/ast/UIQueryASTWith.java +170 -102
  44. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/ast/UIQueryEvaluator.java +54 -155
  45. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/ast/UIQueryUtils.java +97 -2
  46. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/ast/UIQueryVisibility.java +32 -0
  47. metadata +27 -5
  48. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/Query.java +0 -24
  49. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/Touch.java +0 -44
  50. 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
- }