cukunity 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (226) hide show
  1. data/.document +5 -0
  2. data/.gitmodules +0 -0
  3. data/.rspec +1 -0
  4. data/Gemfile +15 -0
  5. data/Gemfile.lock +60 -0
  6. data/LICENSE.txt +20 -0
  7. data/README.md +214 -0
  8. data/Rakefile +51 -0
  9. data/Unity/Assets/Demo/Art/Buttons/down.png +0 -0
  10. data/Unity/Assets/Demo/Art/Buttons/down.png.meta +28 -0
  11. data/Unity/Assets/Demo/Art/Buttons/left.png +0 -0
  12. data/Unity/Assets/Demo/Art/Buttons/left.png.meta +28 -0
  13. data/Unity/Assets/Demo/Art/Buttons/ok.png +0 -0
  14. data/Unity/Assets/Demo/Art/Buttons/ok.png.meta +28 -0
  15. data/Unity/Assets/Demo/Art/Buttons/options.png +0 -0
  16. data/Unity/Assets/Demo/Art/Buttons/options.png.meta +28 -0
  17. data/Unity/Assets/Demo/Art/Buttons/play.png +0 -0
  18. data/Unity/Assets/Demo/Art/Buttons/play.png.meta +28 -0
  19. data/Unity/Assets/Demo/Art/Buttons/quit.png +0 -0
  20. data/Unity/Assets/Demo/Art/Buttons/quit.png.meta +28 -0
  21. data/Unity/Assets/Demo/Art/Buttons/retry.png +0 -0
  22. data/Unity/Assets/Demo/Art/Buttons/retry.png.meta +28 -0
  23. data/Unity/Assets/Demo/Art/Buttons/right.png +0 -0
  24. data/Unity/Assets/Demo/Art/Buttons/right.png.meta +28 -0
  25. data/Unity/Assets/Demo/Art/Buttons/up.png +0 -0
  26. data/Unity/Assets/Demo/Art/Buttons/up.png.meta +28 -0
  27. data/Unity/Assets/Demo/Art/Buttons.meta +2 -0
  28. data/Unity/Assets/Demo/Art/clear.png +0 -0
  29. data/Unity/Assets/Demo/Art/clear.png.meta +28 -0
  30. data/Unity/Assets/Demo/Art/options.png +0 -0
  31. data/Unity/Assets/Demo/Art/options.png.meta +28 -0
  32. data/Unity/Assets/Demo/Art/sokoban.png +0 -0
  33. data/Unity/Assets/Demo/Art/sokoban.png.meta +28 -0
  34. data/Unity/Assets/Demo/Art.meta +2 -0
  35. data/Unity/Assets/Demo/Cubes/CrateCube.mat +0 -0
  36. data/Unity/Assets/Demo/Cubes/CrateCube.mat.meta +2 -0
  37. data/Unity/Assets/Demo/Cubes/CrateCube.prefab +0 -0
  38. data/Unity/Assets/Demo/Cubes/CrateCube.prefab.meta +2 -0
  39. data/Unity/Assets/Demo/Cubes/FloorCube.mat +0 -0
  40. data/Unity/Assets/Demo/Cubes/FloorCube.mat.meta +2 -0
  41. data/Unity/Assets/Demo/Cubes/FloorCube.prefab +0 -0
  42. data/Unity/Assets/Demo/Cubes/FloorCube.prefab.meta +2 -0
  43. data/Unity/Assets/Demo/Cubes/GoalCube.mat +0 -0
  44. data/Unity/Assets/Demo/Cubes/GoalCube.mat.meta +2 -0
  45. data/Unity/Assets/Demo/Cubes/GoalCube.prefab +0 -0
  46. data/Unity/Assets/Demo/Cubes/GoalCube.prefab.meta +2 -0
  47. data/Unity/Assets/Demo/Cubes/PlayerCube.mat +0 -0
  48. data/Unity/Assets/Demo/Cubes/PlayerCube.mat.meta +2 -0
  49. data/Unity/Assets/Demo/Cubes/PlayerCube.prefab +0 -0
  50. data/Unity/Assets/Demo/Cubes/PlayerCube.prefab.meta +2 -0
  51. data/Unity/Assets/Demo/Cubes/WallCube.mat +0 -0
  52. data/Unity/Assets/Demo/Cubes/WallCube.mat.meta +2 -0
  53. data/Unity/Assets/Demo/Cubes/WallCube.prefab +0 -0
  54. data/Unity/Assets/Demo/Cubes/WallCube.prefab.meta +2 -0
  55. data/Unity/Assets/Demo/Cubes.meta +2 -0
  56. data/Unity/Assets/Demo/Resources/MainMenu.prefab +0 -0
  57. data/Unity/Assets/Demo/Resources/MainMenu.prefab.meta +2 -0
  58. data/Unity/Assets/Demo/Resources/OptionsMenu.prefab +0 -0
  59. data/Unity/Assets/Demo/Resources/OptionsMenu.prefab.meta +2 -0
  60. data/Unity/Assets/Demo/Resources.meta +2 -0
  61. data/Unity/Assets/Demo/Scripts/CameraController.js +18 -0
  62. data/Unity/Assets/Demo/Scripts/CameraController.js.meta +2 -0
  63. data/Unity/Assets/Demo/Scripts/EnterPlayerName.js +21 -0
  64. data/Unity/Assets/Demo/Scripts/EnterPlayerName.js.meta +2 -0
  65. data/Unity/Assets/Demo/Scripts/GameLeftButton.js +18 -0
  66. data/Unity/Assets/Demo/Scripts/GameLeftButton.js.meta +2 -0
  67. data/Unity/Assets/Demo/Scripts/GameQuitButton.js +6 -0
  68. data/Unity/Assets/Demo/Scripts/GameQuitButton.js.meta +2 -0
  69. data/Unity/Assets/Demo/Scripts/GameRetryButton.js +7 -0
  70. data/Unity/Assets/Demo/Scripts/GameRetryButton.js.meta +2 -0
  71. data/Unity/Assets/Demo/Scripts/GameRightButton.js +18 -0
  72. data/Unity/Assets/Demo/Scripts/GameRightButton.js.meta +2 -0
  73. data/Unity/Assets/Demo/Scripts/GameUpButton.js +18 -0
  74. data/Unity/Assets/Demo/Scripts/GameUpButton.js.meta +2 -0
  75. data/Unity/Assets/Demo/Scripts/OnTouchGUIElementDown.js +34 -0
  76. data/Unity/Assets/Demo/Scripts/OnTouchGUIElementDown.js.meta +2 -0
  77. data/Unity/Assets/Demo/Scripts/PlayerData.js +3 -0
  78. data/Unity/Assets/Demo/Scripts/PlayerData.js.meta +2 -0
  79. data/Unity/Assets/Demo/Scripts/SokobanController.js +240 -0
  80. data/Unity/Assets/Demo/Scripts/SokobanController.js.meta +2 -0
  81. data/Unity/Assets/Demo/Scripts/TakeScreenShot.js +26 -0
  82. data/Unity/Assets/Demo/Scripts/TakeScreenShot.js.meta +2 -0
  83. data/Unity/Assets/Demo/Scripts/TitleOptionsButton.js +8 -0
  84. data/Unity/Assets/Demo/Scripts/TitleOptionsButton.js.meta +2 -0
  85. data/Unity/Assets/Demo/Scripts/TitleOptionsOkButton.js +8 -0
  86. data/Unity/Assets/Demo/Scripts/TitleOptionsOkButton.js.meta +2 -0
  87. data/Unity/Assets/Demo/Scripts/TitlePlayButton.js +6 -0
  88. data/Unity/Assets/Demo/Scripts/TitlePlayButton.js.meta +2 -0
  89. data/Unity/Assets/Demo/Scripts/TitleQuitButton.js +7 -0
  90. data/Unity/Assets/Demo/Scripts/TitleQuitButton.js.meta +2 -0
  91. data/Unity/Assets/Demo/Scripts/UpdateMovesLabel.js +26 -0
  92. data/Unity/Assets/Demo/Scripts/UpdateMovesLabel.js.meta +2 -0
  93. data/Unity/Assets/Demo/Scripts/UpdatePlayerName.js +14 -0
  94. data/Unity/Assets/Demo/Scripts/UpdatePlayerName.js.meta +2 -0
  95. data/Unity/Assets/Demo/Scripts.meta +2 -0
  96. data/Unity/Assets/Demo/demo_game.unity +0 -0
  97. data/Unity/Assets/Demo/demo_game.unity.meta +2 -0
  98. data/Unity/Assets/Demo/demo_title.unity +0 -0
  99. data/Unity/Assets/Demo/demo_title.unity.meta +2 -0
  100. data/Unity/Assets/Demo.meta +2 -0
  101. data/Unity/Assets/Plugins/CukunityInstance.prefab +0 -0
  102. data/Unity/Assets/Plugins/CukunityInstance.prefab.meta +2 -0
  103. data/Unity/Assets/Plugins/CukunityServer.cs +871 -0
  104. data/Unity/Assets/Plugins/CukunityServer.cs.meta +2 -0
  105. data/Unity/Assets/Plugins/JsonFx.Json.dll +0 -0
  106. data/Unity/Assets/Plugins/JsonFx.Json.dll.meta +2 -0
  107. data/Unity/Assets/Plugins/iOS/CukunityServer.mm +242 -0
  108. data/Unity/Assets/Plugins/iOS/CukunityServer.mm.meta +2 -0
  109. data/Unity/Assets/Plugins/iOS.meta +2 -0
  110. data/Unity/Assets/Plugins.meta +2 -0
  111. data/Unity/Library/AudioManager.asset +0 -0
  112. data/Unity/Library/BuildSettings.asset +0 -0
  113. data/Unity/Library/DynamicsManager.asset +0 -0
  114. data/Unity/Library/EditorBuildSettings.asset +0 -0
  115. data/Unity/Library/EditorSettings.asset +0 -0
  116. data/Unity/Library/EditorUserBuildSettings.asset +0 -0
  117. data/Unity/Library/EditorUserSettings.asset +0 -0
  118. data/Unity/Library/InputManager.asset +0 -0
  119. data/Unity/Library/InspectorExpandedItems.asset +0 -0
  120. data/Unity/Library/MonoManager.asset +0 -0
  121. data/Unity/Library/NetworkManager.asset +0 -0
  122. data/Unity/Library/ProjectSettings.asset +0 -0
  123. data/Unity/Library/QualitySettings.asset +0 -0
  124. data/Unity/Library/TagManager.asset +0 -0
  125. data/Unity/Library/TimeManager.asset +0 -0
  126. data/Unity/ProjectSettings/AudioManager.asset +0 -0
  127. data/Unity/ProjectSettings/DynamicsManager.asset +0 -0
  128. data/Unity/ProjectSettings/EditorBuildSettings.asset +0 -0
  129. data/Unity/ProjectSettings/EditorSettings.asset +0 -0
  130. data/Unity/ProjectSettings/InputManager.asset +0 -0
  131. data/Unity/ProjectSettings/NavMeshLayers.asset +0 -0
  132. data/Unity/ProjectSettings/NetworkManager.asset +0 -0
  133. data/Unity/ProjectSettings/ProjectSettings.asset +0 -0
  134. data/Unity/ProjectSettings/QualitySettings.asset +0 -0
  135. data/Unity/ProjectSettings/TagManager.asset +0 -0
  136. data/Unity/ProjectSettings/TimeManager.asset +0 -0
  137. data/VERSION +1 -0
  138. data/bin/cukunity +7 -0
  139. data/cukunity.gemspec +298 -0
  140. data/features/get_scene_command.feature +39 -0
  141. data/features/i18n/ja/sokoban_clear.feature +109 -0
  142. data/features/install.feature +23 -0
  143. data/features/keyboard_input.feature +26 -0
  144. data/features/load_level_command.feature +36 -0
  145. data/features/run.feature +33 -0
  146. data/features/select_visible.feature +29 -0
  147. data/features/support/env.rb +11 -0
  148. data/features/touch_input.feature +96 -0
  149. data/lib/cukunity/cli/argument_parser.rb +103 -0
  150. data/lib/cukunity/cli/bootstrap_command.rb +39 -0
  151. data/lib/cukunity/cli/doctor_command.rb +150 -0
  152. data/lib/cukunity/cli/features_command.rb +35 -0
  153. data/lib/cukunity/cli/main.rb +18 -0
  154. data/lib/cukunity/cli/options.rb +8 -0
  155. data/lib/cukunity/cli.rb +11 -0
  156. data/lib/cukunity/cucumber/step_definitions/get_scene_command_steps.rb +37 -0
  157. data/lib/cukunity/cucumber/step_definitions/i18n/ja/get_scene_command_steps.rb +37 -0
  158. data/lib/cukunity/cucumber/step_definitions/i18n/ja/install_steps.rb +25 -0
  159. data/lib/cukunity/cucumber/step_definitions/i18n/ja/keyboard_input_steps.rb +17 -0
  160. data/lib/cukunity/cucumber/step_definitions/i18n/ja/load_level_command_steps.rb +17 -0
  161. data/lib/cukunity/cucumber/step_definitions/i18n/ja/run_steps.rb +25 -0
  162. data/lib/cukunity/cucumber/step_definitions/i18n/ja/select_visible_steps.rb +9 -0
  163. data/lib/cukunity/cucumber/step_definitions/i18n/ja/touch_input_steps.rb +19 -0
  164. data/lib/cukunity/cucumber/step_definitions/i18n/ja.rb +9 -0
  165. data/lib/cukunity/cucumber/step_definitions/install_steps.rb +33 -0
  166. data/lib/cukunity/cucumber/step_definitions/keyboard_input_steps.rb +13 -0
  167. data/lib/cukunity/cucumber/step_definitions/load_level_command_steps.rb +17 -0
  168. data/lib/cukunity/cucumber/step_definitions/run_steps.rb +32 -0
  169. data/lib/cukunity/cucumber/step_definitions/select_visible_steps.rb +15 -0
  170. data/lib/cukunity/cucumber/step_definitions/touch_input_steps.rb +18 -0
  171. data/lib/cukunity/cucumber/support/platform_helpers.rb +105 -0
  172. data/lib/cukunity/cucumber/support/spec_helpers.rb +21 -0
  173. data/lib/cukunity/cucumber/support/transforms.rb +5 -0
  174. data/lib/cukunity/cucumber/support/unity_helpers.rb +35 -0
  175. data/lib/cukunity/cucumber.rb +28 -0
  176. data/lib/cukunity/drivers/android/app.rb +43 -0
  177. data/lib/cukunity/drivers/android/appkiller/.gitignore +9 -0
  178. data/lib/cukunity/drivers/android/appkiller/AndroidManifest.xml +17 -0
  179. data/lib/cukunity/drivers/android/appkiller/ant.properties +17 -0
  180. data/lib/cukunity/drivers/android/appkiller/build.xml +85 -0
  181. data/lib/cukunity/drivers/android/appkiller/proguard.cfg +40 -0
  182. data/lib/cukunity/drivers/android/appkiller/project.properties +11 -0
  183. data/lib/cukunity/drivers/android/appkiller/res/layout/main.xml +13 -0
  184. data/lib/cukunity/drivers/android/appkiller/res/values/strings.xml +4 -0
  185. data/lib/cukunity/drivers/android/appkiller/src/cukunity/appkiller/AppKiller.java +29 -0
  186. data/lib/cukunity/drivers/android/keyboard_input.rb +149 -0
  187. data/lib/cukunity/drivers/android/keycodes.rb +531 -0
  188. data/lib/cukunity/drivers/android/monkey_client.rb +65 -0
  189. data/lib/cukunity/drivers/android/process.rb +103 -0
  190. data/lib/cukunity/drivers/android/touch_input.rb +24 -0
  191. data/lib/cukunity/drivers/android/tunnel_client_methods.rb +22 -0
  192. data/lib/cukunity/drivers/android/unity_client.rb +27 -0
  193. data/lib/cukunity/drivers/android/utils.rb +50 -0
  194. data/lib/cukunity/drivers/android.rb +9 -0
  195. data/lib/cukunity/drivers/iOS/app.rb +32 -0
  196. data/lib/cukunity/drivers/iOS/keyboard_input.rb +104 -0
  197. data/lib/cukunity/drivers/iOS/process.rb +42 -0
  198. data/lib/cukunity/drivers/iOS/touch_input.rb +18 -0
  199. data/lib/cukunity/drivers/iOS/tunnel_client_methods.rb +27 -0
  200. data/lib/cukunity/drivers/iOS/uiautomation.rb +97 -0
  201. data/lib/cukunity/drivers/iOS/uiautomation_master.rb +152 -0
  202. data/lib/cukunity/drivers/iOS/uiautomation_slave.js +238 -0
  203. data/lib/cukunity/drivers/iOS/uiautomation_slave.rb +41 -0
  204. data/lib/cukunity/drivers/iOS/unity_client.rb +27 -0
  205. data/lib/cukunity/drivers/iOS/utils.rb +46 -0
  206. data/lib/cukunity/drivers/iOS.rb +9 -0
  207. data/lib/cukunity/exceptions.rb +24 -0
  208. data/lib/cukunity/keyboard_input_methods.rb +35 -0
  209. data/lib/cukunity/request_line_response_client_methods.rb +80 -0
  210. data/lib/cukunity/tasks/cucumber.rake +22 -0
  211. data/lib/cukunity/touch_input_methods.rb +19 -0
  212. data/lib/cukunity/unity/client_methods.rb +46 -0
  213. data/lib/cukunity/unity/command_facade.rb +67 -0
  214. data/lib/cukunity/unity/component.rb +39 -0
  215. data/lib/cukunity/unity/gameobject.rb +53 -0
  216. data/lib/cukunity/unity/hint.rb +27 -0
  217. data/lib/cukunity/unity/json_container.rb +48 -0
  218. data/lib/cukunity/unity/level.rb +6 -0
  219. data/lib/cukunity/unity/scene.rb +18 -0
  220. data/lib/cukunity/unity/screen.rb +45 -0
  221. data/lib/cukunity/unity/screen_hint_methods.rb +61 -0
  222. data/lib/cukunity/unity/text_hint_methods.rb +17 -0
  223. data/lib/cukunity/unity.rb +11 -0
  224. data/lib/cukunity/utils.rb +56 -0
  225. data/lib/cukunity.rb +19 -0
  226. metadata +411 -0
@@ -0,0 +1,2 @@
1
+ fileFormatVersion: 1
2
+ guid: d03979b9411df4b23a2d76ab3eb8e474
@@ -0,0 +1,2 @@
1
+ fileFormatVersion: 1
2
+ guid: e07c677a543cf4f05b5f36dd1840d36e
@@ -0,0 +1,242 @@
1
+ /*
2
+ * CukunityServer.mm
3
+ * CukunityServer
4
+ *
5
+ * Created by Mario Freitas (imkira@gmail.com) on 2012/03/02.
6
+ * Copyright 2012 Mario Freitas (imkira@gmail.com). All rights reserved.
7
+ *
8
+ * Touch synthesization code adapted from:
9
+ * http://cocoawithlove.com/2008/10/synthesizing-touch-event-on-iphone.html
10
+ *
11
+ */
12
+
13
+ #import <Foundation/Foundation.h>
14
+ #import <UIKit/UIKit.h>
15
+
16
+ //
17
+ // TouchSynthesis.m
18
+ // SelfTesting
19
+ //
20
+ // Created by Matt Gallagher on 23/11/08.
21
+ // Copyright 2008 Matt Gallagher. All rights reserved.
22
+ //
23
+ // Permission is given to use this source code file, free of charge, in any
24
+ // project, commercial or otherwise, entirely at your risk, with the condition
25
+ // that any redistribution (in part or whole) of source code must retain
26
+ // this copyright and permission notice. Attribution in compiled projects is
27
+ // appreciated but not required.
28
+ //
29
+
30
+ //
31
+ // UITouch (Synthesize)
32
+ //
33
+ // Category to allow creation and modification of UITouch objects.
34
+ //
35
+ @interface UITouch (Synthesize)
36
+
37
+ - (id)initInView:(UIView *)view;
38
+ - (void)setPhase:(UITouchPhase)phase;
39
+ - (void)setLocationInWindow:(CGPoint)location;
40
+
41
+ @end
42
+
43
+ //
44
+ // UIEvent (Synthesize)
45
+ //
46
+ // A category to allow creation of a touch event.
47
+ //
48
+ @interface UIEvent (Synthesize)
49
+
50
+ - (id)initWithTouch:(UITouch *)touch;
51
+
52
+ @end
53
+
54
+ @implementation UITouch (Synthesize)
55
+
56
+
57
+ //
58
+ // initInView:phase:
59
+ //
60
+ // Creats a UITouch, centered on the specified view, in the view's window.
61
+ // Sets the phase as specified.
62
+ //
63
+ - (id)initInView:(UIView *)view at:(CGPoint)point tapCount:(NSUInteger)tapCount
64
+ {
65
+ self = [super init];
66
+ if (self != nil)
67
+ {
68
+ _tapCount = tapCount;
69
+ _locationInWindow = [view.window convertPoint:point fromView:view];
70
+ _previousLocationInWindow = _locationInWindow;
71
+
72
+ UIView *target = [view.window hitTest:_locationInWindow withEvent:nil];
73
+ _window = [view.window retain];
74
+ _view = [target retain];
75
+ _phase = UITouchPhaseBegan;
76
+ _touchFlags._firstTouchForView = 1;
77
+ _touchFlags._isTap = 1;
78
+ _timestamp = [NSDate timeIntervalSinceReferenceDate];
79
+ _gestureView = [view retain];
80
+ }
81
+ return self;
82
+ }
83
+
84
+ - (id)initInView:(UIView *)view
85
+ {
86
+ CGRect frameInWindow;
87
+ if ([view isKindOfClass:[UIWindow class]])
88
+ {
89
+ frameInWindow = view.frame;
90
+ }
91
+ else
92
+ {
93
+ frameInWindow =
94
+ [view.window convertRect:view.frame fromView:view.superview];
95
+ }
96
+ CGPoint point = CGPointMake(frameInWindow.origin.x + 0.5 * frameInWindow.size.width,
97
+ frameInWindow.origin.y + 0.5 * frameInWindow.size.height);
98
+ return [self initInView:view at:point tapCount:1];
99
+ }
100
+
101
+ //
102
+ // setPhase:
103
+ //
104
+ // Setter to allow access to the _phase member.
105
+ //
106
+ - (void)setPhase:(UITouchPhase)phase
107
+ {
108
+ _phase = phase;
109
+ _timestamp = [NSDate timeIntervalSinceReferenceDate];
110
+ }
111
+
112
+ //
113
+ // setPhase:
114
+ //
115
+ // Setter to allow access to the _locationInWindow member.
116
+ //
117
+ - (void)setLocationInWindow:(CGPoint)location
118
+ {
119
+ _previousLocationInWindow = _locationInWindow;
120
+ _locationInWindow = location;
121
+ _timestamp = [NSDate timeIntervalSinceReferenceDate];
122
+ }
123
+
124
+ @end
125
+
126
+ //
127
+ // GSEvent is an undeclared object. We don't need to use it ourselves but some
128
+ // Apple APIs (UIScrollView in particular) require the x and y fields to be present.
129
+ //
130
+ @interface GSEventProxy : NSObject
131
+ {
132
+ @public
133
+ unsigned int flags;
134
+ unsigned int type;
135
+ unsigned int ignored1;
136
+ float x1;
137
+ float y1;
138
+ float x2;
139
+ float y2;
140
+ unsigned int ignored2[10];
141
+ unsigned int ignored3[7];
142
+ float sizeX;
143
+ float sizeY;
144
+ float x3;
145
+ float y3;
146
+ unsigned int ignored4[3];
147
+ }
148
+ @end
149
+ @implementation GSEventProxy
150
+ @end
151
+
152
+ //
153
+ // PublicEvent
154
+ //
155
+ // A dummy class used to gain access to UIEvent's private member variables.
156
+ // If UIEvent changes at all, this will break.
157
+ //
158
+ @interface PublicEvent : NSObject
159
+ {
160
+ @public
161
+ GSEventProxy *_event;
162
+ NSTimeInterval _timestamp;
163
+ NSMutableSet *_touches;
164
+ CFMutableDictionaryRef _keyedTouches;
165
+ }
166
+ @end
167
+
168
+ @implementation PublicEvent
169
+ @end
170
+
171
+ @interface UIEvent (Creation)
172
+
173
+ - (id)_initWithEvent:(GSEventProxy *)fp8 touches:(id)fp12;
174
+
175
+ @end
176
+
177
+ //
178
+ // UIEvent (Synthesize)
179
+ //
180
+ // A category to allow creation of a touch event.
181
+ //
182
+ @implementation UIEvent (Synthesize)
183
+
184
+ - (id)initWithTouch:(UITouch *)touch
185
+ {
186
+ CGPoint location = [touch locationInView:touch.window];
187
+ GSEventProxy *gsEventProxy = [[GSEventProxy alloc] init];
188
+ gsEventProxy->x1 = location.x;
189
+ gsEventProxy->y1 = location.y;
190
+ gsEventProxy->x2 = location.x;
191
+ gsEventProxy->y2 = location.y;
192
+ gsEventProxy->x3 = location.x;
193
+ gsEventProxy->y3 = location.y;
194
+ gsEventProxy->sizeX = 1.0;
195
+ gsEventProxy->sizeY = 1.0;
196
+ gsEventProxy->flags = ([touch phase] == UITouchPhaseEnded) ? 0x1010180 : 0x3010180;
197
+ gsEventProxy->type = 3001;
198
+
199
+ //
200
+ // On SDK versions 3.0 and greater, we need to reallocate as a
201
+ // UITouchesEvent.
202
+ //
203
+ Class touchesEventClass = NSClassFromString(@"UITouchesEvent");
204
+ if (touchesEventClass && ![[self class] isEqual:touchesEventClass])
205
+ {
206
+ [self release];
207
+ self = [touchesEventClass alloc];
208
+ }
209
+
210
+ self = [self _initWithEvent:gsEventProxy touches:[NSSet setWithObject:touch]];
211
+ if (self != nil)
212
+ {
213
+ }
214
+ return self;
215
+ }
216
+
217
+ @end
218
+
219
+ extern UIViewController *UnityGetGLViewController();
220
+
221
+ extern "C"
222
+ {
223
+ extern UIViewController *sGLViewController;
224
+
225
+ void CukunityScreenInstantTap(int x, int y, int tapCount)
226
+ {
227
+ UIView *view = UnityGetGLViewController().view;
228
+ UITouch *touch = [[UITouch alloc] initInView:view at:CGPointMake(x, y) tapCount:tapCount];
229
+ UIEvent *eventDown = [[UIEvent alloc] initWithTouch:touch];
230
+
231
+ [touch.view touchesBegan:[eventDown allTouches] withEvent:eventDown];
232
+
233
+ [touch setPhase:UITouchPhaseEnded];
234
+ UIEvent *eventUp = [[UIEvent alloc] initWithTouch:touch];
235
+
236
+ [touch.view touchesEnded:[eventUp allTouches] withEvent:eventUp];
237
+
238
+ [eventDown release];
239
+ [eventUp release];
240
+ [touch release];
241
+ }
242
+ }
@@ -0,0 +1,2 @@
1
+ fileFormatVersion: 1
2
+ guid: 3b08f88bae15b41a5b30baf7477cfc02
@@ -0,0 +1,2 @@
1
+ fileFormatVersion: 1
2
+ guid: 72b43ab0fb6d6401a80abf5b4d30211e
@@ -0,0 +1,2 @@
1
+ fileFormatVersion: 1
2
+ guid: 889207ff032564006a91466ace018168
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.1.0
data/bin/cukunity ADDED
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env ruby
2
+ # -*- coding: UTF-8 -*-
3
+
4
+ $:.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
5
+ require 'cukunity/cli'
6
+
7
+ Cukunity::CLI::Main.execute!
data/cukunity.gemspec ADDED
@@ -0,0 +1,298 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = "cukunity"
8
+ s.version = "0.1.0"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Mario Freitas"]
12
+ s.date = "2012-04-02"
13
+ s.description = "cukunity is a tool inspired by the principles of Behaviour Driven Development. Cukunity is a portmanteau of \"Cucumber\" and \"Unity\", and as so it provides helpers to play nicely with cucumber, although it can be used standalone for automation. "
14
+ s.email = "imkira@gmail.com"
15
+ s.executables = ["cukunity"]
16
+ s.extra_rdoc_files = [
17
+ "LICENSE.txt",
18
+ "README.md"
19
+ ]
20
+ s.files = [
21
+ ".document",
22
+ ".gitmodules",
23
+ ".rspec",
24
+ "Gemfile",
25
+ "Gemfile.lock",
26
+ "LICENSE.txt",
27
+ "README.md",
28
+ "Rakefile",
29
+ "Unity/Assets/Demo.meta",
30
+ "Unity/Assets/Demo/Art.meta",
31
+ "Unity/Assets/Demo/Art/Buttons.meta",
32
+ "Unity/Assets/Demo/Art/Buttons/down.png",
33
+ "Unity/Assets/Demo/Art/Buttons/down.png.meta",
34
+ "Unity/Assets/Demo/Art/Buttons/left.png",
35
+ "Unity/Assets/Demo/Art/Buttons/left.png.meta",
36
+ "Unity/Assets/Demo/Art/Buttons/ok.png",
37
+ "Unity/Assets/Demo/Art/Buttons/ok.png.meta",
38
+ "Unity/Assets/Demo/Art/Buttons/options.png",
39
+ "Unity/Assets/Demo/Art/Buttons/options.png.meta",
40
+ "Unity/Assets/Demo/Art/Buttons/play.png",
41
+ "Unity/Assets/Demo/Art/Buttons/play.png.meta",
42
+ "Unity/Assets/Demo/Art/Buttons/quit.png",
43
+ "Unity/Assets/Demo/Art/Buttons/quit.png.meta",
44
+ "Unity/Assets/Demo/Art/Buttons/retry.png",
45
+ "Unity/Assets/Demo/Art/Buttons/retry.png.meta",
46
+ "Unity/Assets/Demo/Art/Buttons/right.png",
47
+ "Unity/Assets/Demo/Art/Buttons/right.png.meta",
48
+ "Unity/Assets/Demo/Art/Buttons/up.png",
49
+ "Unity/Assets/Demo/Art/Buttons/up.png.meta",
50
+ "Unity/Assets/Demo/Art/clear.png",
51
+ "Unity/Assets/Demo/Art/clear.png.meta",
52
+ "Unity/Assets/Demo/Art/options.png",
53
+ "Unity/Assets/Demo/Art/options.png.meta",
54
+ "Unity/Assets/Demo/Art/sokoban.png",
55
+ "Unity/Assets/Demo/Art/sokoban.png.meta",
56
+ "Unity/Assets/Demo/Cubes.meta",
57
+ "Unity/Assets/Demo/Cubes/CrateCube.mat",
58
+ "Unity/Assets/Demo/Cubes/CrateCube.mat.meta",
59
+ "Unity/Assets/Demo/Cubes/CrateCube.prefab",
60
+ "Unity/Assets/Demo/Cubes/CrateCube.prefab.meta",
61
+ "Unity/Assets/Demo/Cubes/FloorCube.mat",
62
+ "Unity/Assets/Demo/Cubes/FloorCube.mat.meta",
63
+ "Unity/Assets/Demo/Cubes/FloorCube.prefab",
64
+ "Unity/Assets/Demo/Cubes/FloorCube.prefab.meta",
65
+ "Unity/Assets/Demo/Cubes/GoalCube.mat",
66
+ "Unity/Assets/Demo/Cubes/GoalCube.mat.meta",
67
+ "Unity/Assets/Demo/Cubes/GoalCube.prefab",
68
+ "Unity/Assets/Demo/Cubes/GoalCube.prefab.meta",
69
+ "Unity/Assets/Demo/Cubes/PlayerCube.mat",
70
+ "Unity/Assets/Demo/Cubes/PlayerCube.mat.meta",
71
+ "Unity/Assets/Demo/Cubes/PlayerCube.prefab",
72
+ "Unity/Assets/Demo/Cubes/PlayerCube.prefab.meta",
73
+ "Unity/Assets/Demo/Cubes/WallCube.mat",
74
+ "Unity/Assets/Demo/Cubes/WallCube.mat.meta",
75
+ "Unity/Assets/Demo/Cubes/WallCube.prefab",
76
+ "Unity/Assets/Demo/Cubes/WallCube.prefab.meta",
77
+ "Unity/Assets/Demo/Resources.meta",
78
+ "Unity/Assets/Demo/Resources/MainMenu.prefab",
79
+ "Unity/Assets/Demo/Resources/MainMenu.prefab.meta",
80
+ "Unity/Assets/Demo/Resources/OptionsMenu.prefab",
81
+ "Unity/Assets/Demo/Resources/OptionsMenu.prefab.meta",
82
+ "Unity/Assets/Demo/Scripts.meta",
83
+ "Unity/Assets/Demo/Scripts/CameraController.js",
84
+ "Unity/Assets/Demo/Scripts/CameraController.js.meta",
85
+ "Unity/Assets/Demo/Scripts/EnterPlayerName.js",
86
+ "Unity/Assets/Demo/Scripts/EnterPlayerName.js.meta",
87
+ "Unity/Assets/Demo/Scripts/GameLeftButton.js",
88
+ "Unity/Assets/Demo/Scripts/GameLeftButton.js.meta",
89
+ "Unity/Assets/Demo/Scripts/GameQuitButton.js",
90
+ "Unity/Assets/Demo/Scripts/GameQuitButton.js.meta",
91
+ "Unity/Assets/Demo/Scripts/GameRetryButton.js",
92
+ "Unity/Assets/Demo/Scripts/GameRetryButton.js.meta",
93
+ "Unity/Assets/Demo/Scripts/GameRightButton.js",
94
+ "Unity/Assets/Demo/Scripts/GameRightButton.js.meta",
95
+ "Unity/Assets/Demo/Scripts/GameUpButton.js",
96
+ "Unity/Assets/Demo/Scripts/GameUpButton.js.meta",
97
+ "Unity/Assets/Demo/Scripts/OnTouchGUIElementDown.js",
98
+ "Unity/Assets/Demo/Scripts/OnTouchGUIElementDown.js.meta",
99
+ "Unity/Assets/Demo/Scripts/PlayerData.js",
100
+ "Unity/Assets/Demo/Scripts/PlayerData.js.meta",
101
+ "Unity/Assets/Demo/Scripts/SokobanController.js",
102
+ "Unity/Assets/Demo/Scripts/SokobanController.js.meta",
103
+ "Unity/Assets/Demo/Scripts/TakeScreenShot.js",
104
+ "Unity/Assets/Demo/Scripts/TakeScreenShot.js.meta",
105
+ "Unity/Assets/Demo/Scripts/TitleOptionsButton.js",
106
+ "Unity/Assets/Demo/Scripts/TitleOptionsButton.js.meta",
107
+ "Unity/Assets/Demo/Scripts/TitleOptionsOkButton.js",
108
+ "Unity/Assets/Demo/Scripts/TitleOptionsOkButton.js.meta",
109
+ "Unity/Assets/Demo/Scripts/TitlePlayButton.js",
110
+ "Unity/Assets/Demo/Scripts/TitlePlayButton.js.meta",
111
+ "Unity/Assets/Demo/Scripts/TitleQuitButton.js",
112
+ "Unity/Assets/Demo/Scripts/TitleQuitButton.js.meta",
113
+ "Unity/Assets/Demo/Scripts/UpdateMovesLabel.js",
114
+ "Unity/Assets/Demo/Scripts/UpdateMovesLabel.js.meta",
115
+ "Unity/Assets/Demo/Scripts/UpdatePlayerName.js",
116
+ "Unity/Assets/Demo/Scripts/UpdatePlayerName.js.meta",
117
+ "Unity/Assets/Demo/demo_game.unity",
118
+ "Unity/Assets/Demo/demo_game.unity.meta",
119
+ "Unity/Assets/Demo/demo_title.unity",
120
+ "Unity/Assets/Demo/demo_title.unity.meta",
121
+ "Unity/Assets/Plugins.meta",
122
+ "Unity/Assets/Plugins/CukunityInstance.prefab",
123
+ "Unity/Assets/Plugins/CukunityInstance.prefab.meta",
124
+ "Unity/Assets/Plugins/CukunityServer.cs",
125
+ "Unity/Assets/Plugins/CukunityServer.cs.meta",
126
+ "Unity/Assets/Plugins/JsonFx.Json.dll",
127
+ "Unity/Assets/Plugins/JsonFx.Json.dll.meta",
128
+ "Unity/Assets/Plugins/iOS.meta",
129
+ "Unity/Assets/Plugins/iOS/CukunityServer.mm",
130
+ "Unity/Assets/Plugins/iOS/CukunityServer.mm.meta",
131
+ "Unity/Library/AudioManager.asset",
132
+ "Unity/Library/BuildSettings.asset",
133
+ "Unity/Library/DynamicsManager.asset",
134
+ "Unity/Library/EditorBuildSettings.asset",
135
+ "Unity/Library/EditorSettings.asset",
136
+ "Unity/Library/EditorUserBuildSettings.asset",
137
+ "Unity/Library/EditorUserSettings.asset",
138
+ "Unity/Library/InputManager.asset",
139
+ "Unity/Library/InspectorExpandedItems.asset",
140
+ "Unity/Library/MonoManager.asset",
141
+ "Unity/Library/NetworkManager.asset",
142
+ "Unity/Library/ProjectSettings.asset",
143
+ "Unity/Library/QualitySettings.asset",
144
+ "Unity/Library/TagManager.asset",
145
+ "Unity/Library/TimeManager.asset",
146
+ "Unity/ProjectSettings/AudioManager.asset",
147
+ "Unity/ProjectSettings/DynamicsManager.asset",
148
+ "Unity/ProjectSettings/EditorBuildSettings.asset",
149
+ "Unity/ProjectSettings/EditorSettings.asset",
150
+ "Unity/ProjectSettings/InputManager.asset",
151
+ "Unity/ProjectSettings/NavMeshLayers.asset",
152
+ "Unity/ProjectSettings/NetworkManager.asset",
153
+ "Unity/ProjectSettings/ProjectSettings.asset",
154
+ "Unity/ProjectSettings/QualitySettings.asset",
155
+ "Unity/ProjectSettings/TagManager.asset",
156
+ "Unity/ProjectSettings/TimeManager.asset",
157
+ "VERSION",
158
+ "bin/cukunity",
159
+ "cukunity.gemspec",
160
+ "features/get_scene_command.feature",
161
+ "features/i18n/ja/sokoban_clear.feature",
162
+ "features/install.feature",
163
+ "features/keyboard_input.feature",
164
+ "features/load_level_command.feature",
165
+ "features/run.feature",
166
+ "features/select_visible.feature",
167
+ "features/support/env.rb",
168
+ "features/touch_input.feature",
169
+ "lib/cukunity.rb",
170
+ "lib/cukunity/cli.rb",
171
+ "lib/cukunity/cli/argument_parser.rb",
172
+ "lib/cukunity/cli/bootstrap_command.rb",
173
+ "lib/cukunity/cli/doctor_command.rb",
174
+ "lib/cukunity/cli/features_command.rb",
175
+ "lib/cukunity/cli/main.rb",
176
+ "lib/cukunity/cli/options.rb",
177
+ "lib/cukunity/cucumber.rb",
178
+ "lib/cukunity/cucumber/step_definitions/get_scene_command_steps.rb",
179
+ "lib/cukunity/cucumber/step_definitions/i18n/ja.rb",
180
+ "lib/cukunity/cucumber/step_definitions/i18n/ja/get_scene_command_steps.rb",
181
+ "lib/cukunity/cucumber/step_definitions/i18n/ja/install_steps.rb",
182
+ "lib/cukunity/cucumber/step_definitions/i18n/ja/keyboard_input_steps.rb",
183
+ "lib/cukunity/cucumber/step_definitions/i18n/ja/load_level_command_steps.rb",
184
+ "lib/cukunity/cucumber/step_definitions/i18n/ja/run_steps.rb",
185
+ "lib/cukunity/cucumber/step_definitions/i18n/ja/select_visible_steps.rb",
186
+ "lib/cukunity/cucumber/step_definitions/i18n/ja/touch_input_steps.rb",
187
+ "lib/cukunity/cucumber/step_definitions/install_steps.rb",
188
+ "lib/cukunity/cucumber/step_definitions/keyboard_input_steps.rb",
189
+ "lib/cukunity/cucumber/step_definitions/load_level_command_steps.rb",
190
+ "lib/cukunity/cucumber/step_definitions/run_steps.rb",
191
+ "lib/cukunity/cucumber/step_definitions/select_visible_steps.rb",
192
+ "lib/cukunity/cucumber/step_definitions/touch_input_steps.rb",
193
+ "lib/cukunity/cucumber/support/platform_helpers.rb",
194
+ "lib/cukunity/cucumber/support/spec_helpers.rb",
195
+ "lib/cukunity/cucumber/support/transforms.rb",
196
+ "lib/cukunity/cucumber/support/unity_helpers.rb",
197
+ "lib/cukunity/drivers/android.rb",
198
+ "lib/cukunity/drivers/android/app.rb",
199
+ "lib/cukunity/drivers/android/appkiller/.gitignore",
200
+ "lib/cukunity/drivers/android/appkiller/AndroidManifest.xml",
201
+ "lib/cukunity/drivers/android/appkiller/ant.properties",
202
+ "lib/cukunity/drivers/android/appkiller/build.xml",
203
+ "lib/cukunity/drivers/android/appkiller/proguard.cfg",
204
+ "lib/cukunity/drivers/android/appkiller/project.properties",
205
+ "lib/cukunity/drivers/android/appkiller/res/layout/main.xml",
206
+ "lib/cukunity/drivers/android/appkiller/res/values/strings.xml",
207
+ "lib/cukunity/drivers/android/appkiller/src/cukunity/appkiller/AppKiller.java",
208
+ "lib/cukunity/drivers/android/keyboard_input.rb",
209
+ "lib/cukunity/drivers/android/keycodes.rb",
210
+ "lib/cukunity/drivers/android/monkey_client.rb",
211
+ "lib/cukunity/drivers/android/process.rb",
212
+ "lib/cukunity/drivers/android/touch_input.rb",
213
+ "lib/cukunity/drivers/android/tunnel_client_methods.rb",
214
+ "lib/cukunity/drivers/android/unity_client.rb",
215
+ "lib/cukunity/drivers/android/utils.rb",
216
+ "lib/cukunity/drivers/iOS.rb",
217
+ "lib/cukunity/drivers/iOS/app.rb",
218
+ "lib/cukunity/drivers/iOS/keyboard_input.rb",
219
+ "lib/cukunity/drivers/iOS/process.rb",
220
+ "lib/cukunity/drivers/iOS/touch_input.rb",
221
+ "lib/cukunity/drivers/iOS/tunnel_client_methods.rb",
222
+ "lib/cukunity/drivers/iOS/uiautomation.rb",
223
+ "lib/cukunity/drivers/iOS/uiautomation_master.rb",
224
+ "lib/cukunity/drivers/iOS/uiautomation_slave.js",
225
+ "lib/cukunity/drivers/iOS/uiautomation_slave.rb",
226
+ "lib/cukunity/drivers/iOS/unity_client.rb",
227
+ "lib/cukunity/drivers/iOS/utils.rb",
228
+ "lib/cukunity/exceptions.rb",
229
+ "lib/cukunity/keyboard_input_methods.rb",
230
+ "lib/cukunity/request_line_response_client_methods.rb",
231
+ "lib/cukunity/tasks/cucumber.rake",
232
+ "lib/cukunity/touch_input_methods.rb",
233
+ "lib/cukunity/unity.rb",
234
+ "lib/cukunity/unity/client_methods.rb",
235
+ "lib/cukunity/unity/command_facade.rb",
236
+ "lib/cukunity/unity/component.rb",
237
+ "lib/cukunity/unity/gameobject.rb",
238
+ "lib/cukunity/unity/hint.rb",
239
+ "lib/cukunity/unity/json_container.rb",
240
+ "lib/cukunity/unity/level.rb",
241
+ "lib/cukunity/unity/scene.rb",
242
+ "lib/cukunity/unity/screen.rb",
243
+ "lib/cukunity/unity/screen_hint_methods.rb",
244
+ "lib/cukunity/unity/text_hint_methods.rb",
245
+ "lib/cukunity/utils.rb"
246
+ ]
247
+ s.homepage = "http://github.com/imkira/cukunity"
248
+ s.licenses = ["MIT"]
249
+ s.require_paths = ["lib"]
250
+ s.rubygems_version = "1.8.11"
251
+ s.summary = "cukunity is an automation/testing framework that simplifies BDD testing of Unity 3D games."
252
+
253
+ if s.respond_to? :specification_version then
254
+ s.specification_version = 3
255
+
256
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
257
+ s.add_runtime_dependency(%q<json>, [">= 1.6.5"])
258
+ s.add_runtime_dependency(%q<term-ansicolor>, [">= 1.0.6"])
259
+ s.add_development_dependency(%q<rspec>, ["~> 2.8.0"])
260
+ s.add_development_dependency(%q<yard>, ["~> 0.7"])
261
+ s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
262
+ s.add_development_dependency(%q<cucumber>, [">= 0"])
263
+ s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
264
+ s.add_development_dependency(%q<jeweler>, ["~> 1.8.3"])
265
+ s.add_development_dependency(%q<reek>, ["~> 1.2.8"])
266
+ s.add_development_dependency(%q<roodi>, ["~> 2.1.0"])
267
+ s.add_runtime_dependency(%q<json>, [">= 1.6.5"])
268
+ s.add_runtime_dependency(%q<term-ansicolor>, [">= 1.0.6"])
269
+ else
270
+ s.add_dependency(%q<json>, [">= 1.6.5"])
271
+ s.add_dependency(%q<term-ansicolor>, [">= 1.0.6"])
272
+ s.add_dependency(%q<rspec>, ["~> 2.8.0"])
273
+ s.add_dependency(%q<yard>, ["~> 0.7"])
274
+ s.add_dependency(%q<rdoc>, ["~> 3.12"])
275
+ s.add_dependency(%q<cucumber>, [">= 0"])
276
+ s.add_dependency(%q<bundler>, ["~> 1.0.0"])
277
+ s.add_dependency(%q<jeweler>, ["~> 1.8.3"])
278
+ s.add_dependency(%q<reek>, ["~> 1.2.8"])
279
+ s.add_dependency(%q<roodi>, ["~> 2.1.0"])
280
+ s.add_dependency(%q<json>, [">= 1.6.5"])
281
+ s.add_dependency(%q<term-ansicolor>, [">= 1.0.6"])
282
+ end
283
+ else
284
+ s.add_dependency(%q<json>, [">= 1.6.5"])
285
+ s.add_dependency(%q<term-ansicolor>, [">= 1.0.6"])
286
+ s.add_dependency(%q<rspec>, ["~> 2.8.0"])
287
+ s.add_dependency(%q<yard>, ["~> 0.7"])
288
+ s.add_dependency(%q<rdoc>, ["~> 3.12"])
289
+ s.add_dependency(%q<cucumber>, [">= 0"])
290
+ s.add_dependency(%q<bundler>, ["~> 1.0.0"])
291
+ s.add_dependency(%q<jeweler>, ["~> 1.8.3"])
292
+ s.add_dependency(%q<reek>, ["~> 1.2.8"])
293
+ s.add_dependency(%q<roodi>, ["~> 2.1.0"])
294
+ s.add_dependency(%q<json>, [">= 1.6.5"])
295
+ s.add_dependency(%q<term-ansicolor>, [">= 1.0.6"])
296
+ end
297
+ end
298
+