calabash-android 0.2.11 → 0.2.12

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 (48) hide show
  1. data/CHANGES.txt +6 -0
  2. data/features-skeleton/support/app_installation_hooks.rb +11 -3
  3. data/features-skeleton/support/app_life_cycle_hooks.rb +9 -0
  4. data/features-skeleton/support/hooks.rb +18 -2
  5. data/lib/calabash-android/operations.rb +1 -1
  6. data/lib/calabash-android/steps/assert_steps.rb +12 -0
  7. data/lib/calabash-android/steps/list_steps.rb +40 -0
  8. data/lib/calabash-android/steps/map_steps.rb +61 -0
  9. data/lib/calabash-android/steps/navigation_steps.rb +10 -1
  10. data/lib/calabash-android/steps/progress_steps.rb +5 -0
  11. data/lib/calabash-android/version.rb +2 -2
  12. data/test-server/AndroidManifest.xml +5 -5
  13. data/test-server/build.xml +4 -0
  14. data/test-server/instrumentation-backend/.gitignore +1 -0
  15. data/test-server/instrumentation-backend/AndroidManifest.xml +4 -3
  16. data/test-server/instrumentation-backend/project.properties +1 -1
  17. data/test-server/instrumentation-backend/src/com/jayway/android/robotium/solo/MapViewUtils.java +328 -0
  18. data/test-server/instrumentation-backend/src/com/jayway/android/robotium/solo/SoloEnhanced.java +97 -0
  19. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/InstrumentationBackend.java +3 -3
  20. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/TestHelpers.java +51 -1
  21. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/list/GetListItemProperties.java +195 -0
  22. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/list/GetListItemText.java +136 -0
  23. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/map/GetMapBounds.java +27 -0
  24. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/map/GetMapCenter.java +27 -0
  25. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/map/GetMapMarker.java +31 -0
  26. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/map/GetMapMarkers.java +48 -0
  27. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/map/GetMapZoom.java +19 -0
  28. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/map/PanMapTo.java +23 -0
  29. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/map/SetMapCenter.java +23 -0
  30. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/map/SetMapZoom.java +34 -0
  31. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/map/TapAwayFromMarkers.java +28 -0
  32. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/map/TapMapMarker.java +29 -0
  33. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/spinner/GetSelectedSpinnerItemText.java +36 -0
  34. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/text/AssertGridViewContainsNoDuplicates.java +72 -0
  35. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/text/GetTextById.java +42 -0
  36. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/view/AssertViewProperty.java +141 -0
  37. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/view/ClickOnViewById.java +1 -8
  38. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/view/GetActivityName.java +32 -0
  39. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/view/GetViewProperty.java +107 -0
  40. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/view/HasView.java +31 -0
  41. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/view/Press.java +1 -1
  42. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/view/SelectTab.java +110 -0
  43. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/wait/WaitForScreen.java +10 -6
  44. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/wait/WaitForTab.java +108 -0
  45. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/{view → wait}/WaitForView.java +1 -1
  46. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/{view → wait}/WaitForViewById.java +21 -11
  47. data/test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/QueryHelper.java +3 -3
  48. metadata +102 -88
@@ -5,12 +5,10 @@ import sh.calaba.instrumentationbackend.Result;
5
5
  import sh.calaba.instrumentationbackend.actions.Action;
6
6
 
7
7
  public class WaitForScreen implements Action {
8
+ private static final int DEFAULT_TIMEOUT = 5 * 1000;
8
9
 
9
10
  @Override
10
11
  public Result execute(String... args) {
11
-
12
- final int DEFAULT_TIMEOUT = 5 * 1000;
13
-
14
12
  switch (args.length) {
15
13
  case 0:
16
14
  return new Result(false, "Cannot check for correct screen. No Activity name supplied!");
@@ -18,11 +16,14 @@ public class WaitForScreen implements Action {
18
16
  if (InstrumentationBackend.solo.waitForActivity(args[0], DEFAULT_TIMEOUT)) {
19
17
  return Result.successResult();
20
18
  } else {
21
- return new Result(false, "Screen " + args[0] + " not found");
19
+ String currentActivity = InstrumentationBackend.solo.getCurrentActivity().getLocalClassName();
20
+ Result result = new Result(false, "Screen " + args[0] + " not found. Current activity is " + currentActivity);
21
+ result.addBonusInformation(currentActivity);
22
+ return result;
22
23
  }
23
24
  }
24
25
  case 2: { // 1st arg is Activity name, 2nd arg is timeout
25
- int timeout = DEFAULT_TIMEOUT;
26
+ int timeout;
26
27
 
27
28
  try {
28
29
  // given seconds; want milliseconds
@@ -34,7 +35,10 @@ public class WaitForScreen implements Action {
34
35
  if (InstrumentationBackend.solo.waitForActivity(args[0], timeout)) {
35
36
  return Result.successResult();
36
37
  } else {
37
- return new Result(false, "Screen " + args[0] + " not found");
38
+ String currentActivity = InstrumentationBackend.solo.getCurrentActivity().getLocalClassName();
39
+ Result result = new Result(false, "Screen " + args[0] + " not found. Current activity is " + currentActivity);
40
+ result.addBonusInformation(currentActivity);
41
+ return result;
38
42
  }
39
43
  }
40
44
  default:
@@ -0,0 +1,108 @@
1
+ package sh.calaba.instrumentationbackend.actions.wait;
2
+
3
+ import java.util.List;
4
+
5
+ import android.os.SystemClock;
6
+ import android.util.Log;
7
+ import android.view.View;
8
+ import android.widget.TabHost;
9
+ import android.widget.TextView;
10
+ import sh.calaba.instrumentationbackend.InstrumentationBackend;
11
+ import sh.calaba.instrumentationbackend.Result;
12
+ import sh.calaba.instrumentationbackend.actions.Action;
13
+
14
+ /**
15
+ * Waits for a tab by name
16
+ *
17
+ * @author Nicholas Albion
18
+ */
19
+ public class WaitForTab implements Action {
20
+
21
+ @Override
22
+ public Result execute(String... args) {
23
+
24
+ final int DEFAULT_TIMEOUT = 5 * 1000;
25
+ int timeout = DEFAULT_TIMEOUT;
26
+
27
+ switch (args.length) {
28
+ case 0:
29
+ return new Result(false, "Cannot check for correct screen. No tab name supplied!");
30
+ case 1: {
31
+ return waitForTab( args[0], DEFAULT_TIMEOUT );
32
+ }
33
+ case 2: { // 1st arg is Activity name, 2nd arg is timeout
34
+ try {
35
+ timeout = Integer.parseInt(args[1]);
36
+ } catch (NumberFormatException e) {
37
+ return new Result(false, "Invalid timeout supplied. Should be an integer!");
38
+ }
39
+ return waitForTab( args[0], timeout );
40
+ }
41
+ default:
42
+ return new Result(false, "Too many argument supplied to wait_for_tab!");
43
+ }
44
+ }
45
+
46
+ private Result waitForTab( String tabName, int timeout ) {
47
+ int tabHostIndex = 0;
48
+ long startTime = SystemClock.uptimeMillis();
49
+ // TabHost tabHost = InstrumentationBackend.solo.getView( TabHost.class, tabHostIndex ); // waits 10 seconds
50
+
51
+ if( InstrumentationBackend.solo.waitForView( TabHost.class, 1, timeout ) ) {
52
+ TabHost tabHost = (TabHost)InstrumentationBackend.solo.getView(TabHost.class, tabHostIndex);
53
+
54
+ boolean tabFound = false;
55
+ int numberOfTabs = tabHost.getChildCount();
56
+ for( int i = 0; i < numberOfTabs; i++ ) {
57
+ if( tabName.equals( tabHost.getTag(i) ) ) {
58
+ tabFound = true;
59
+ break;
60
+ }
61
+ }
62
+ if( tabFound == false ) {
63
+ Log.w("WaitForTab", "Tab was not found: " + tabName);
64
+ // return new Result(false, "Tab " + tabName + " not found");
65
+ }
66
+
67
+ String currentTab;
68
+ do {
69
+ int tabIndex = tabHost.getCurrentTab();
70
+ View view = tabHost.getTabWidget().getChildTabViewAt(tabIndex);
71
+ if( view instanceof TextView ) {
72
+ currentTab = ((TextView)view).getText().toString();
73
+ if( tabName.equals(currentTab) ) {
74
+ return new Result(true, "The current tab text view matches");
75
+ }
76
+ } else {
77
+ Log.i("WaitForTab", "current tab view: " + view.getId() + ", " + view.getClass().getSimpleName());
78
+ List<TextView> textViews = InstrumentationBackend.solo.getCurrentTextViews(view);
79
+ for( TextView textView : textViews ) {
80
+ currentTab = textView.getText().toString();
81
+ Log.i("WaitForTab", " child text view: " + currentTab);
82
+ if( tabName.equals(currentTab) ) {
83
+ return new Result(true, "The current tab text view matches");
84
+ }
85
+ }
86
+ }
87
+
88
+ currentTab = tabHost.getCurrentTabTag();
89
+
90
+ if( tabName.equals(currentTab) ) {
91
+ return new Result(true, "The current tab's tag matches");
92
+ }
93
+ try {
94
+ Thread.sleep(500);
95
+ } catch (InterruptedException e) {}
96
+ } while( (SystemClock.uptimeMillis() - startTime) < timeout );
97
+
98
+ return new Result(false, "The current tab is: " + currentTab + ", was tab even found? " + tabFound);
99
+ } else {
100
+ return new Result(false, "Timed out waiting for a TabActivity. Current activity is " + InstrumentationBackend.solo.getCurrentActivity().getLocalClassName());
101
+ }
102
+ }
103
+
104
+ @Override
105
+ public String key() {
106
+ return "wait_for_tab";
107
+ }
108
+ }
@@ -1,4 +1,4 @@
1
- package sh.calaba.instrumentationbackend.actions.view;
1
+ package sh.calaba.instrumentationbackend.actions.wait;
2
2
 
3
3
  import sh.calaba.instrumentationbackend.InstrumentationBackend;
4
4
  import sh.calaba.instrumentationbackend.Result;
@@ -1,4 +1,4 @@
1
- package sh.calaba.instrumentationbackend.actions.view;
1
+ package sh.calaba.instrumentationbackend.actions.wait;
2
2
 
3
3
 
4
4
  import sh.calaba.instrumentationbackend.Result;
@@ -12,26 +12,36 @@ public class WaitForViewById implements Action {
12
12
  @Override
13
13
  public Result execute(String... args) {
14
14
  String viewId = args[0];
15
- System.out.println("Waiting for view with id '" + viewId + "'");
16
- long endTime = System.currentTimeMillis() + 60000;
15
+
16
+ try {
17
+ if( getViewById(viewId, 60000) != null ) {
18
+ return Result.successResult();
19
+ } else {
20
+ return new Result(false, "Timed out while waiting for view with id:'" + viewId + "'");
21
+ }
22
+ } catch( InterruptedException e ) {
23
+ return Result.fromThrowable(e);
24
+ }
25
+ }
26
+
27
+ protected View getViewById( String viewId, long timeout ) throws InterruptedException {
28
+ System.out.println("Waiting for view with id '" + viewId + "'");
29
+ long endTime = System.currentTimeMillis() + timeout;
17
30
  while (System.currentTimeMillis() < endTime) {
18
31
  View view = TestHelpers.getViewById(viewId);
19
32
  System.out.println("Waiting for view with id '" + viewId + "' found view " + view);
20
33
 
21
34
  if (view != null) {
22
35
  System.out.println("Waiting for view with id '" + viewId + "' Success");
23
- return Result.successResult();
36
+ return view;
24
37
  } else {
25
- try {
26
- System.out.println("Waiting for view with id '" + viewId + "' sleeping...");
27
- Thread.sleep(500);
28
- } catch (InterruptedException e) {
29
- return Result.fromThrowable(e);
30
- }
38
+ System.out.println("Waiting for view with id '" + viewId + "' sleeping...");
39
+ Thread.sleep(500);
31
40
  }
32
41
  }
42
+
33
43
  System.out.println("Waiting for view with id '" + viewId + "' Timed out");
34
- return new Result(false, "Timed out while waiting for view with id:'" + viewId + "'");
44
+ return null;
35
45
  }
36
46
 
37
47
  @Override
@@ -62,9 +62,9 @@ public class QueryHelper {
62
62
  int[] webviewLocation = new int[2];
63
63
  webView.getLocationOnScreen(webviewLocation);
64
64
 
65
- //TODO: Exception if center_x or center_y are not integers
66
- float x = webviewLocation[0] + (Integer)rectangle.get("center_x") * scale;
67
- float y = webviewLocation[1] + (Integer)rectangle.get("center_y") * scale;
65
+ //TODO: Exception if center_x or center_y are not numbers
66
+ float x = webviewLocation[0] + ((Number)rectangle.get("center_x")).floatValue() * scale;
67
+ float y = webviewLocation[1] + ((Number)rectangle.get("center_y")).floatValue() * scale;
68
68
  return new float[]{x, y};
69
69
  } catch (Exception e) {
70
70
  throw new RuntimeException(e);
metadata CHANGED
@@ -1,89 +1,88 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: calabash-android
3
- version: !ruby/object:Gem::Version
4
- hash: 1
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.12
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 2
9
- - 11
10
- version: 0.2.11
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Jonas Maturana Larsen
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2012-08-14 00:00:00 +02:00
19
- default_executable:
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
12
+ date: 2012-08-27 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
22
15
  name: cucumber
23
- prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
25
17
  none: false
26
- requirements:
27
- - - ">="
28
- - !ruby/object:Gem::Version
29
- hash: 3
30
- segments:
31
- - 0
32
- version: "0"
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
33
22
  type: :runtime
34
- version_requirements: *id001
35
- - !ruby/object:Gem::Dependency
36
- name: json
37
23
  prerelease: false
38
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: json
32
+ requirement: !ruby/object:Gem::Requirement
39
33
  none: false
40
- requirements:
41
- - - ">="
42
- - !ruby/object:Gem::Version
43
- hash: 3
44
- segments:
45
- - 0
46
- version: "0"
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
47
38
  type: :runtime
48
- version_requirements: *id002
49
- - !ruby/object:Gem::Dependency
50
- name: slowhandcuke
51
39
  prerelease: false
52
- requirement: &id003 !ruby/object:Gem::Requirement
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: slowhandcuke
48
+ requirement: !ruby/object:Gem::Requirement
53
49
  none: false
54
- requirements:
55
- - - ">="
56
- - !ruby/object:Gem::Version
57
- hash: 3
58
- segments:
59
- - 0
60
- version: "0"
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
61
54
  type: :runtime
62
- version_requirements: *id003
63
- - !ruby/object:Gem::Dependency
64
- name: retriable
65
55
  prerelease: false
66
- requirement: &id004 !ruby/object:Gem::Requirement
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: retriable
64
+ requirement: !ruby/object:Gem::Requirement
67
65
  none: false
68
- requirements:
69
- - - ">="
70
- - !ruby/object:Gem::Version
71
- hash: 3
72
- segments:
73
- - 0
74
- version: "0"
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
75
70
  type: :runtime
76
- version_requirements: *id004
77
- description: "calabash-android drives tests for native and hybrid Android apps. "
78
- email:
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ description: ! 'calabash-android drives tests for native and hybrid Android apps. '
79
+ email:
79
80
  - jonas@lesspainful.com
80
- executables:
81
+ executables:
81
82
  - calabash-android
82
83
  extensions: []
83
-
84
84
  extra_rdoc_files: []
85
-
86
- files:
85
+ files:
87
86
  - .calabash_settings
88
87
  - CHANGES.txt
89
88
  - Gemfile
@@ -127,7 +126,9 @@ files:
127
126
  - lib/calabash-android/steps/context_menu_steps.rb
128
127
  - lib/calabash-android/steps/date_picker_steps.rb
129
128
  - lib/calabash-android/steps/enter_text_steps.rb
129
+ - lib/calabash-android/steps/list_steps.rb
130
130
  - lib/calabash-android/steps/location_steps.rb
131
+ - lib/calabash-android/steps/map_steps.rb
131
132
  - lib/calabash-android/steps/navigation_steps.rb
132
133
  - lib/calabash-android/steps/press_button_steps.rb
133
134
  - lib/calabash-android/steps/progress_steps.rb
@@ -139,6 +140,7 @@ files:
139
140
  - test-server/AndroidManifest.xml
140
141
  - test-server/build.xml
141
142
  - test-server/instrumentation-backend/.classpath
143
+ - test-server/instrumentation-backend/.gitignore
142
144
  - test-server/instrumentation-backend/.project
143
145
  - test-server/instrumentation-backend/.settings/org.eclipse.jdt.core.prefs
144
146
  - test-server/instrumentation-backend/AndroidManifest.xml
@@ -150,6 +152,8 @@ files:
150
152
  - test-server/instrumentation-backend/res/drawable-mdpi/ic_launcher.png
151
153
  - test-server/instrumentation-backend/res/layout/main.xml
152
154
  - test-server/instrumentation-backend/res/values/strings.xml
155
+ - test-server/instrumentation-backend/src/com/jayway/android/robotium/solo/MapViewUtils.java
156
+ - test-server/instrumentation-backend/src/com/jayway/android/robotium/solo/SoloEnhanced.java
153
157
  - test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/CalabashInstrumentationTestRunner.java
154
158
  - test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/Command.java
155
159
  - test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/InstrumentationBackend.java
@@ -172,9 +176,21 @@ files:
172
176
  - test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/gestures/ClickOnScreen.java
173
177
  - test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/gestures/Swipe.java
174
178
  - test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/helpers/ListActions.java
179
+ - test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/list/GetListItemProperties.java
180
+ - test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/list/GetListItemText.java
175
181
  - test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/list/LongPressListItems.java
176
182
  - test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/list/PressListItems.java
177
183
  - test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/location/FakeGPSLocation.java
184
+ - test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/map/GetMapBounds.java
185
+ - test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/map/GetMapCenter.java
186
+ - test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/map/GetMapMarker.java
187
+ - test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/map/GetMapMarkers.java
188
+ - test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/map/GetMapZoom.java
189
+ - test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/map/PanMapTo.java
190
+ - test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/map/SetMapCenter.java
191
+ - test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/map/SetMapZoom.java
192
+ - test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/map/TapAwayFromMarkers.java
193
+ - test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/map/TapMapMarker.java
178
194
  - test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/scrolling/ScrollDown.java
179
195
  - test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/scrolling/ScrollUp.java
180
196
  - test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/softkey/DownKey.java
@@ -182,7 +198,9 @@ files:
182
198
  - test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/softkey/GoBack.java
183
199
  - test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/softkey/PressMenu.java
184
200
  - test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/softkey/SelectFromMenuByText.java
201
+ - test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/spinner/GetSelectedSpinnerItemText.java
185
202
  - test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/spinner/SelectSpinnerItemByContentDescription.java
203
+ - test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/text/AssertGridViewContainsNoDuplicates.java
186
204
  - test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/text/AssertText.java
187
205
  - test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/text/AssertTextOfSpecificTextViewByContentDescription.java
188
206
  - test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/text/ClearTextById.java
@@ -192,21 +210,28 @@ files:
192
210
  - test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/text/EnterTextByContentDescription.java
193
211
  - test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/text/EnterTextById.java
194
212
  - test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/text/EnterTextByIndex.java
213
+ - test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/text/GetTextById.java
195
214
  - test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/time/SetDateByContentDescription.java
196
215
  - test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/time/SetDateByIndex.java
197
216
  - test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/time/SetTimeByContentDescription.java
198
217
  - test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/time/SetTimeByIndex.java
218
+ - test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/view/AssertViewProperty.java
199
219
  - test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/view/ClickOnViewById.java
220
+ - test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/view/GetActivityName.java
221
+ - test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/view/GetViewProperty.java
222
+ - test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/view/HasView.java
200
223
  - test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/view/IsEnabled.java
201
224
  - test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/view/LongPressOnViewById.java
202
225
  - test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/view/Press.java
203
- - test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/view/WaitForView.java
204
- - test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/view/WaitForViewById.java
226
+ - test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/view/SelectTab.java
205
227
  - test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/wait/Wait.java
206
228
  - test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/wait/WaitForDialogClose.java
207
229
  - test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/wait/WaitForProgress.java
208
230
  - test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/wait/WaitForScreen.java
231
+ - test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/wait/WaitForTab.java
209
232
  - test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/wait/WaitForText.java
233
+ - test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/wait/WaitForView.java
234
+ - test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/wait/WaitForViewById.java
210
235
  - test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/CalabashChromeClient.java
211
236
  - test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/DumpBodyHtml.java
212
237
  - test-server/instrumentation-backend/src/sh/calaba/instrumentationbackend/actions/webview/DumpHtml.java
@@ -629,39 +654,28 @@ files:
629
654
  - test-server/instrumentation-backend/src/sh/calaba/org/codehaus/jackson/util/package-info.java
630
655
  - test-server/calabash-js/src/calabash.js
631
656
  - test-server/calabash-js/src/set_text.js
632
- has_rdoc: true
633
657
  homepage: http://github.com/calabash
634
658
  licenses: []
635
-
636
659
  post_install_message:
637
660
  rdoc_options: []
638
-
639
- require_paths:
661
+ require_paths:
640
662
  - lib
641
- required_ruby_version: !ruby/object:Gem::Requirement
663
+ required_ruby_version: !ruby/object:Gem::Requirement
642
664
  none: false
643
- requirements:
644
- - - ">="
645
- - !ruby/object:Gem::Version
646
- hash: 3
647
- segments:
648
- - 0
649
- version: "0"
650
- required_rubygems_version: !ruby/object:Gem::Requirement
665
+ requirements:
666
+ - - ! '>='
667
+ - !ruby/object:Gem::Version
668
+ version: '0'
669
+ required_rubygems_version: !ruby/object:Gem::Requirement
651
670
  none: false
652
- requirements:
653
- - - ">="
654
- - !ruby/object:Gem::Version
655
- hash: 3
656
- segments:
657
- - 0
658
- version: "0"
671
+ requirements:
672
+ - - ! '>='
673
+ - !ruby/object:Gem::Version
674
+ version: '0'
659
675
  requirements: []
660
-
661
676
  rubyforge_project:
662
- rubygems_version: 1.6.2
677
+ rubygems_version: 1.8.24
663
678
  signing_key:
664
679
  specification_version: 3
665
680
  summary: Client for calabash-android for automated functional testing on Android
666
681
  test_files: []
667
-