calabash-android 0.4.22.pre4 → 0.5.0.pre1

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 (93) hide show
  1. checksums.yaml +4 -4
  2. data/bin/calabash-android +66 -45
  3. data/lib/calabash-android/calabash_steps.rb +0 -8
  4. data/lib/calabash-android/canned_steps.md +2 -30
  5. data/lib/calabash-android/lib/TestServer.apk +0 -0
  6. data/lib/calabash-android/operations.rb +199 -23
  7. data/lib/calabash-android/removed_actions.txt +52 -0
  8. data/lib/calabash-android/steps/assert_steps.rb +9 -24
  9. data/lib/calabash-android/steps/check_box_steps.rb +2 -2
  10. data/lib/calabash-android/steps/context_menu_steps.rb +11 -4
  11. data/lib/calabash-android/steps/date_picker_steps.rb +2 -2
  12. data/lib/calabash-android/steps/enter_text_steps.rb +13 -13
  13. data/lib/calabash-android/steps/l10n_steps.rb +5 -5
  14. data/lib/calabash-android/steps/map_steps.rb +12 -12
  15. data/lib/calabash-android/steps/navigation_steps.rb +12 -12
  16. data/lib/calabash-android/steps/press_button_steps.rb +16 -12
  17. data/lib/calabash-android/steps/progress_steps.rb +19 -22
  18. data/lib/calabash-android/steps/search_steps.rb +2 -2
  19. data/lib/calabash-android/steps/spinner_steps.rb +10 -2
  20. data/lib/calabash-android/steps/time_picker_steps.rb +2 -2
  21. data/lib/calabash-android/version.rb +1 -1
  22. data/lib/calabash-android/wait_helpers.rb +29 -1
  23. data/test-server/instrumentation-backend/antlr/UIQuery.g +11 -11
  24. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/CalabashInstrumentationTestRunner.java +3 -2
  25. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/InstrumentationBackend.java +9 -4
  26. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/Result.java +16 -12
  27. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/application/Backdoor.java +55 -0
  28. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/gestures/LongPressCoordinate.java +19 -2
  29. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/JavaScriptExecuter.java +105 -0
  30. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/QueryHelper.java +27 -30
  31. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/ViewMapper.java +27 -18
  32. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/ast/ComparisonOperator.java +7 -1
  33. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/ast/UIQueryASTPredicate.java +16 -4
  34. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/ast/UIQueryASTWith.java +13 -6
  35. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/query/ast/UIQueryUtils.java +94 -48
  36. metadata +5 -59
  37. data/lib/calabash-android/steps/additions_manual_steps.rb +0 -11
  38. data/lib/calabash-android/steps/app_steps.rb +0 -10
  39. data/lib/calabash-android/steps/list_steps.rb +0 -41
  40. data/lib/calabash-android/steps/rotation_steps.rb +0 -7
  41. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/button/PressButtonNumber.java +0 -22
  42. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/button/PressButtonText.java +0 -27
  43. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/button/PressImageButtonDescription.java +0 -39
  44. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/button/PressImageButtonNumber.java +0 -22
  45. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/button/WaitForButton.java +0 -47
  46. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/checkbox/ToggleCheckboxNumber.java +0 -22
  47. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/contextmenu/LongPressText.java +0 -22
  48. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/contextmenu/LongPressTextAndSelectFromMenuById.java +0 -26
  49. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/contextmenu/LongPressTextAndSelectFromMenuByIndex.java +0 -22
  50. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/contextmenu/LongPressTextAndSelectFromMenuByText.java +0 -26
  51. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/helpers/InspectCurrentDialog.java +0 -76
  52. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/list/GetListData.java +0 -85
  53. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/list/GetListItemProperties.java +0 -194
  54. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/list/GetListItemText.java +0 -136
  55. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/list/LongPressListItems.java +0 -22
  56. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/list/PressListItems.java +0 -22
  57. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/scrolling/ScrollDown.java +0 -22
  58. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/scrolling/ScrollUp.java +0 -22
  59. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/search/EnterQueryByIndex.java +0 -29
  60. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/softkey/SelectFromMenuByText.java +0 -24
  61. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/spinner/GetSelectedSpinnerItemText.java +0 -36
  62. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/spinner/SelectSpinnerItemByContentDescription.java +0 -43
  63. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/text/AssertGridViewContainsNoDuplicates.java +0 -72
  64. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/text/AssertText.java +0 -31
  65. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/text/AssertTextOfSpecificTextViewByContentDescription.java +0 -32
  66. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/text/ClearTextById.java +0 -30
  67. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/text/ClearTextByIndex.java +0 -22
  68. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/text/ClearTextFieldByContentDescription.java +0 -33
  69. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/text/ClickOnText.java +0 -22
  70. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/text/EnterTextByContentDescription.java +0 -32
  71. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/text/EnterTextById.java +0 -33
  72. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/text/EnterTextByIndex.java +0 -22
  73. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/text/GetTextById.java +0 -42
  74. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/view/AssertViewProperty.java +0 -141
  75. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/view/ClickOnViewByDescription.java +0 -46
  76. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/view/ClickOnViewById.java +0 -56
  77. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/view/GetViewProperty.java +0 -101
  78. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/view/HasView.java +0 -31
  79. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/view/IsEnabled.java +0 -30
  80. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/view/LongPressOnViewById.java +0 -34
  81. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/view/Press.java +0 -89
  82. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/view/SelectTab.java +0 -110
  83. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/wait/Wait.java +0 -24
  84. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/wait/WaitForDialogClose.java +0 -21
  85. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/wait/WaitForProgress.java +0 -47
  86. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/wait/WaitForScreen.java +0 -54
  87. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/wait/WaitForTab.java +0 -108
  88. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/wait/WaitForText.java +0 -37
  89. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/wait/WaitForView.java +0 -43
  90. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/wait/WaitForViewById.java +0 -58
  91. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/JavaScriptOperation.java +0 -44
  92. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/PressByCssSelector.java +0 -70
  93. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/SetText.java +0 -64
@@ -1,31 +0,0 @@
1
- package sh.calaba.instrumentationbackend.actions.view;
2
-
3
- import sh.calaba.instrumentationbackend.Result;
4
- import sh.calaba.instrumentationbackend.TestHelpers;
5
- import sh.calaba.instrumentationbackend.actions.Action;
6
- import android.view.View;
7
-
8
- public class HasView implements Action {
9
-
10
- @Override
11
- public Result execute(String... args) {
12
- final String idArgument = args[0];
13
- final View foundView = TestHelpers.getViewById(idArgument);
14
-
15
- if( null == foundView ) {
16
- return notFoundResult(idArgument);
17
- }
18
-
19
- return Result.successResult();
20
- }
21
-
22
- @Override
23
- public String key() {
24
- return "has_view";
25
- }
26
-
27
- private Result notFoundResult(final String firstArgument) {
28
- return Result.failedResult(String.format("View with id %s was not found", firstArgument));
29
- }
30
- }
31
-
@@ -1,30 +0,0 @@
1
- package sh.calaba.instrumentationbackend.actions.view;
2
-
3
- import sh.calaba.instrumentationbackend.Result;
4
- import sh.calaba.instrumentationbackend.TestHelpers;
5
- import sh.calaba.instrumentationbackend.actions.Action;
6
- import android.view.View;
7
-
8
- public class IsEnabled implements Action {
9
-
10
- @Override
11
- public Result execute(String... args) {
12
- final String firstArgument = args[0];
13
- final View foundView = TestHelpers.getViewById(firstArgument);
14
-
15
- if( null == foundView ) {
16
- return notFoundResult(firstArgument);
17
- }
18
-
19
- return new Result(foundView.isEnabled());
20
- }
21
-
22
- @Override
23
- public String key() {
24
- return "is_enabled";
25
- }
26
-
27
- private Result notFoundResult(final String firstArgument) {
28
- return Result.failedResult(String.format("View with id %s was not found", firstArgument));
29
- }
30
- }
@@ -1,34 +0,0 @@
1
- package sh.calaba.instrumentationbackend.actions.view;
2
-
3
-
4
- import sh.calaba.instrumentationbackend.InstrumentationBackend;
5
- import sh.calaba.instrumentationbackend.Result;
6
- import sh.calaba.instrumentationbackend.TestHelpers;
7
- import sh.calaba.instrumentationbackend.actions.Action;
8
- import android.view.View;
9
-
10
-
11
- /*
12
- * Warning: Unlike most other actions this action will allow you to click on views that are not visible.
13
- */
14
- public class LongPressOnViewById implements Action {
15
-
16
- @Override
17
- public Result execute(String... args) {
18
- final View view = TestHelpers.getViewById(args[0]);
19
-
20
- if(view == null) {
21
- return new Result(false, "Could not find view with id: '" + args[0] + "'");
22
- }
23
- InstrumentationBackend.solo.clickLongOnView(view);
24
- return Result.successResult();
25
- }
26
-
27
- @Override
28
- public String key() {
29
- return "long_press_on_view_by_id";
30
- }
31
-
32
-
33
-
34
- }
@@ -1,89 +0,0 @@
1
- package sh.calaba.instrumentationbackend.actions.view;
2
-
3
-
4
- import sh.calaba.instrumentationbackend.InstrumentationBackend;
5
- import sh.calaba.instrumentationbackend.Result;
6
- import sh.calaba.instrumentationbackend.actions.Action;
7
- import android.view.View;
8
- import android.widget.Button;
9
- import android.widget.TextView;
10
-
11
-
12
- public class Press implements Action {
13
-
14
- @Override
15
- public Result execute(String... args) {
16
- View viewToPress = null;
17
- String helpText = "";
18
- String description = args[0];
19
- // Try to press button
20
-
21
- InstrumentationBackend.solo.searchButton(description);
22
- helpText += "Buttons:\n";
23
- for (Button b : InstrumentationBackend.solo.getCurrentViews(Button.class)) {
24
- helpText += b.getText() + "\n";
25
- if (b.getText().toString().equalsIgnoreCase(description)) {
26
- System.out.println("Found button to press:" + b);
27
- viewToPress = b;
28
- break;
29
- }
30
- }
31
-
32
- // Try to press view with content description
33
- if (viewToPress == null) {
34
- helpText += "Content descriptions:\n";
35
- for (View view : InstrumentationBackend.solo.getCurrentViews()) {
36
- String viewDescription = view.getContentDescription() != null ? view.getContentDescription().toString() : "";
37
-
38
- if (viewDescription.length() > 0) {
39
- helpText += viewDescription + "\n";
40
- }
41
- if (viewDescription != null && viewDescription.equalsIgnoreCase(description)) {
42
- System.out.println("Found view to press:" + view);
43
- viewToPress = view;
44
- break;
45
- }
46
- }
47
- }
48
-
49
- // Try to find view with matching class name
50
- if (viewToPress == null) {
51
- InstrumentationBackend.solo.searchText(description);
52
- System.out.println("searchText(" + description + ")");
53
- helpText += "Classes:\n";
54
- for (View v : InstrumentationBackend.solo.getCurrentViews()) {
55
- if (v.getClass() == TextView.class) {
56
- TextView tv = (TextView) v;
57
- helpText += v.getClass().getName() + "(" + tv.getText().toString() + ")(" + tv.getParent().getClass() + ")\n";
58
- if (tv.getText().toString().equalsIgnoreCase(description)) {
59
- viewToPress = v;
60
- break;
61
- }
62
-
63
- } else {
64
- helpText += v.getClass().getName() + "\n";
65
- if (v.getClass().getName().endsWith(description)) {
66
- viewToPress = v;
67
- break;
68
- }
69
- }
70
- }
71
- }
72
- if (viewToPress != null) {
73
- System.out.println("Pressing:" + viewToPress);
74
- if (viewToPress instanceof TextView) {
75
- System.out.println("Pressing(.getText()):" + ((TextView) viewToPress).getText());
76
- }
77
- InstrumentationBackend.solo.clickOnView(viewToPress);
78
- return Result.successResult();
79
- } else {
80
- return new Result(false, ("Could not find anything to press matching: '" + description + "' found: \n" + helpText));
81
- }
82
- }
83
-
84
- @Override
85
- public String key() {
86
- return "press";
87
- }
88
-
89
- }
@@ -1,110 +0,0 @@
1
- package sh.calaba.instrumentationbackend.actions.view;
2
-
3
- import java.util.LinkedList;
4
- import java.util.List;
5
-
6
- import sh.calaba.instrumentationbackend.InstrumentationBackend;
7
- import sh.calaba.instrumentationbackend.Result;
8
- import sh.calaba.instrumentationbackend.actions.Action;
9
- import android.app.Activity;
10
- import android.app.TabActivity;
11
- import android.util.Log;
12
- import android.view.View;
13
- import android.widget.TabHost;
14
- import android.widget.TextView;
15
-
16
- /**
17
- * Select the tab by 1-based index or by name
18
- *
19
- * @author Nicholas Albion
20
- */
21
- @SuppressWarnings("deprecation")
22
- public class SelectTab implements Action {
23
- @Override
24
- public Result execute(String... args) {
25
-
26
- Activity currentActivity = InstrumentationBackend.solo.getCurrentActivity();
27
-
28
- if( currentActivity instanceof TabActivity == false ) {
29
- Activity parent = currentActivity.getParent();
30
- if( parent != null ) {
31
- currentActivity = parent;
32
- }
33
- }
34
-
35
- if( currentActivity instanceof TabActivity ) {
36
- final TabHost tabHost = ((TabActivity)currentActivity).getTabHost();
37
-
38
- String tabName = args[0];
39
- if( tabName.length() == 1 ) {
40
- char c = tabName.charAt(0);
41
- if( c >= '0' && c <= '9' ) {
42
- int index = (c - '0') - 1;
43
- tabHost.setCurrentTab( index );
44
- return Result.successResult();
45
- }
46
- }
47
-
48
- List<String> foundTabs = new LinkedList<String>();
49
- int numberOfTabs = ((TabActivity)currentActivity).getTabWidget().getTabCount();
50
- Log.i("SelectTab", "numberOfTabs: " + numberOfTabs);
51
-
52
- String resultMessage = null;
53
- int tabIndex;
54
- FIND_TAB:
55
- for( tabIndex = 0; tabIndex < numberOfTabs; tabIndex++ ) {
56
- if( tabName.equals( tabHost.getTag(tabIndex) ) ) {
57
- resultMessage = "Selected the tab by tag";
58
- break;
59
- }
60
-
61
- String currentTab;
62
- View view = tabHost.getTabWidget().getChildTabViewAt(tabIndex);
63
- if( view instanceof TextView ) {
64
- currentTab = ((TextView)view).getText().toString();
65
- if( tabName.equals(currentTab) ) {
66
- resultMessage = "Selected the tab by text view";
67
- break;
68
- }
69
- foundTabs.add(currentTab);
70
- } else {
71
- Log.i("SelectTab", "current tab view: " + view.getId() + ", " + view.getClass().getSimpleName());
72
- List<TextView> textViews = InstrumentationBackend.solo.getCurrentViews(TextView.class, view);
73
- for( TextView textView : textViews ) {
74
- currentTab = textView.getText().toString();
75
- Log.i("SelectTab", " child text view: " + currentTab);
76
- if( tabName.equals(currentTab) ) {
77
- resultMessage = "Selected the tab by child text view";
78
- break FIND_TAB;
79
- }
80
- foundTabs.add(currentTab);
81
- }
82
- }
83
- }
84
-
85
- if( resultMessage != null ) {
86
- final int matchingTabIndex = tabIndex;
87
-
88
- currentActivity.runOnUiThread( new Runnable() {
89
- @Override
90
- public void run() {
91
- tabHost.setCurrentTab( matchingTabIndex );
92
- }
93
- });
94
-
95
- return new Result(true, resultMessage);
96
- }
97
-
98
- Result result = new Result(false, "Was unable to find a matching tab");
99
- result.setExtras( foundTabs );
100
- return result;
101
- } else {
102
- return new Result(false, "The current activity is not a TabActivity: " + currentActivity.getLocalClassName() );
103
- }
104
- }
105
-
106
- @Override
107
- public String key() {
108
- return "select_tab";
109
- }
110
- }
@@ -1,24 +0,0 @@
1
- package sh.calaba.instrumentationbackend.actions.wait;
2
-
3
-
4
- import sh.calaba.instrumentationbackend.Result;
5
- import sh.calaba.instrumentationbackend.TestHelpers;
6
- import sh.calaba.instrumentationbackend.actions.Action;
7
-
8
-
9
- public class Wait implements Action {
10
-
11
- @Override
12
- public Result execute(String... args) {
13
- int seconds = Integer.parseInt(args[0]);
14
-
15
- TestHelpers.wait(seconds);
16
-
17
- return Result.successResult();
18
- }
19
-
20
- @Override
21
- public String key() {
22
- return "wait";
23
- }
24
- }
@@ -1,21 +0,0 @@
1
- package sh.calaba.instrumentationbackend.actions.wait;
2
-
3
-
4
- import sh.calaba.instrumentationbackend.InstrumentationBackend;
5
- import sh.calaba.instrumentationbackend.Result;
6
- import sh.calaba.instrumentationbackend.actions.Action;
7
-
8
-
9
- public class WaitForDialogClose implements Action {
10
-
11
- @Override
12
- public Result execute(String... args) {
13
- InstrumentationBackend.solo.waitForDialogToClose(30000);
14
- return Result.successResult();
15
- }
16
-
17
- @Override
18
- public String key() {
19
- return "wait_for_dialog_to_close";
20
- }
21
- }
@@ -1,47 +0,0 @@
1
- package sh.calaba.instrumentationbackend.actions.wait;
2
-
3
-
4
- import sh.calaba.instrumentationbackend.InstrumentationBackend;
5
- import sh.calaba.instrumentationbackend.Result;
6
- import sh.calaba.instrumentationbackend.actions.Action;
7
- import android.view.View;
8
- import android.widget.ProgressBar;
9
-
10
-
11
- public class WaitForProgress implements Action {
12
-
13
- @Override
14
- public Result execute(String... args) {
15
- int timeout = 60000;
16
- long waitUntil = System.currentTimeMillis() + timeout;
17
-
18
- while (numberOfVisibleProgressBars() > 0) {
19
- if (System.currentTimeMillis() > waitUntil) {
20
- return new Result(false, "Timedout waiting for no visible progressbars (" + numberOfVisibleProgressBars() +" still visible).");
21
- }
22
- try {
23
- Thread.sleep(100);
24
- } catch (InterruptedException e) {
25
- e.printStackTrace();
26
- }
27
- }
28
- return Result.successResult();
29
- }
30
-
31
- @Override
32
- public String key() {
33
- return "wait_for_no_progress_bars";
34
- }
35
-
36
- private int numberOfVisibleProgressBars() {
37
- int visibleProgressBars = 0;
38
- for (ProgressBar v : InstrumentationBackend.solo.getCurrentViews(ProgressBar.class)) {
39
- if (v != null & v.getVisibility() != View.GONE && v.getVisibility() != View.INVISIBLE && v.isShown()) {
40
- visibleProgressBars++;
41
- System.out.println("Found visible progressbar number:" + visibleProgressBars);
42
- }
43
- }
44
- return visibleProgressBars;
45
- }
46
-
47
- }
@@ -1,54 +0,0 @@
1
- package sh.calaba.instrumentationbackend.actions.wait;
2
-
3
- import sh.calaba.instrumentationbackend.InstrumentationBackend;
4
- import sh.calaba.instrumentationbackend.Result;
5
- import sh.calaba.instrumentationbackend.actions.Action;
6
-
7
- public class WaitForScreen implements Action {
8
- private static final int DEFAULT_TIMEOUT = 5 * 1000;
9
-
10
- @Override
11
- public Result execute(String... args) {
12
- switch (args.length) {
13
- case 0:
14
- return new Result(false, "Cannot check for correct screen. No Activity name supplied!");
15
- case 1: {
16
- if (InstrumentationBackend.solo.waitForActivity(args[0], DEFAULT_TIMEOUT)) {
17
- return Result.successResult();
18
- } else {
19
- String currentActivity = InstrumentationBackend.solo.getCurrentActivity().getClass().getSimpleName();
20
- Result result = new Result(false, "Screen " + args[0] + " not found. Current activity is " + currentActivity);
21
- result.addBonusInformation(currentActivity);
22
- return result;
23
- }
24
- }
25
- case 2: { // 1st arg is Activity name, 2nd arg is timeout
26
- int timeout;
27
-
28
- try {
29
- // given seconds; want milliseconds
30
- timeout = 1000 * Integer.parseInt(args[1]);
31
- } catch (NumberFormatException e) {
32
- return new Result(false, "Invalid timeout supplied. Should be an integer!");
33
- }
34
-
35
- if (InstrumentationBackend.solo.waitForActivity(args[0], timeout)) {
36
- return Result.successResult();
37
- } else {
38
- String currentActivity = InstrumentationBackend.solo.getCurrentActivity().getClass().getSimpleName();
39
- Result result = new Result(false, "Screen " + args[0] + " not found. Current activity is " + currentActivity);
40
- result.addBonusInformation(currentActivity);
41
- return result;
42
- }
43
- }
44
- default:
45
- return new Result(false, "Too many argument supplied to wait_for_screen!");
46
- }
47
- }
48
-
49
- @Override
50
- public String key() {
51
- return "wait_for_screen";
52
- }
53
-
54
- }