calabash-android 0.2.11 → 0.2.12

Sign up to get free protection for your applications and to get access to all the features.
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
-