limelight 0.3.1-java → 0.4.0-java

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 (235) hide show
  1. data/lib/init.rb +5 -2
  2. data/lib/limelight/animation.rb +2 -2
  3. data/lib/limelight/builtin/players/button.rb +1 -1
  4. data/lib/limelight/builtin/players/check_box.rb +1 -1
  5. data/lib/limelight/builtin/players/combo_box.rb +2 -4
  6. data/lib/limelight/builtin/players/combo_box_popup_list.rb +1 -1
  7. data/lib/limelight/builtin/players/combo_box_popup_list_item.rb +1 -1
  8. data/lib/limelight/builtin/players/curtains.rb +1 -1
  9. data/lib/limelight/builtin/players/image.rb +3 -0
  10. data/lib/limelight/builtin/players/password_box.rb +1 -1
  11. data/lib/limelight/builtin/players/radio_button.rb +1 -1
  12. data/lib/limelight/builtin/players/text_area.rb +1 -1
  13. data/lib/limelight/builtin/players/text_box.rb +1 -1
  14. data/lib/limelight/builtin/players.rb +1 -1
  15. data/lib/limelight/builtin/styles.rb +1 -1
  16. data/lib/limelight/builtin/utilities_production/alert/props.rb +5 -0
  17. data/lib/limelight/builtin/utilities_production/alert/styles.rb +7 -0
  18. data/lib/limelight/builtin/utilities_production/incompatible_version/props.rb +17 -0
  19. data/lib/limelight/builtin/utilities_production/incompatible_version/styles.rb +9 -0
  20. data/lib/limelight/builtin/utilities_production/production.rb +59 -0
  21. data/lib/limelight/builtin/utilities_production/stages.rb +9 -0
  22. data/lib/limelight/builtin/utilities_production/styles.rb +50 -0
  23. data/lib/limelight/button_group_cache.rb +1 -1
  24. data/lib/limelight/casting_director.rb +1 -1
  25. data/lib/limelight/client/playbills.rb +3 -0
  26. data/lib/limelight/commands/command.rb +13 -7
  27. data/lib/limelight/commands/create_command.rb +13 -8
  28. data/lib/limelight/commands/freeze_command.rb +3 -0
  29. data/lib/limelight/commands/help_command.rb +12 -1
  30. data/lib/limelight/commands/open_command.rb +11 -1
  31. data/lib/limelight/commands/pack_command.rb +1 -1
  32. data/lib/limelight/commands/unpack_command.rb +1 -1
  33. data/lib/limelight/commands/version_command.rb +1 -1
  34. data/lib/limelight/data.rb +4 -14
  35. data/lib/limelight/dsl/build_exception.rb +12 -8
  36. data/lib/limelight/dsl/menu_bar.rb +1 -1
  37. data/lib/limelight/dsl/production_builder.rb +1 -1
  38. data/lib/limelight/dsl/prop_builder.rb +2 -2
  39. data/lib/limelight/dsl/stage_builder.rb +3 -3
  40. data/lib/limelight/dsl/styles_builder.rb +2 -1
  41. data/lib/limelight/file_chooser.rb +1 -1
  42. data/lib/limelight/file_filter.rb +1 -1
  43. data/lib/limelight/file_loader.rb +1 -1
  44. data/lib/limelight/gems.rb +4 -0
  45. data/lib/limelight/java_couplings.rb +3 -2
  46. data/lib/limelight/java_util.rb +1 -1
  47. data/lib/limelight/limelight_exception.rb +1 -1
  48. data/lib/limelight/main.rb +1 -1
  49. data/lib/limelight/paint_action.rb +1 -1
  50. data/lib/limelight/pen.rb +1 -1
  51. data/lib/limelight/producer.rb +52 -37
  52. data/lib/limelight/production.rb +81 -43
  53. data/lib/limelight/prop.rb +32 -13
  54. data/lib/limelight/scene.rb +19 -14
  55. data/lib/limelight/specs/spec_helper.rb +55 -28
  56. data/lib/limelight/stage.rb +163 -23
  57. data/lib/limelight/string.rb +3 -0
  58. data/lib/limelight/studio.rb +143 -6
  59. data/lib/limelight/styles.rb +14 -1
  60. data/lib/limelight/templates/production_templater.rb +6 -2
  61. data/lib/limelight/templates/scene_templater.rb +12 -7
  62. data/lib/limelight/templates/sources/production/production.rb.template +46 -6
  63. data/lib/limelight/templates/sources/production/spec/spec_helper.rb.template +5 -0
  64. data/lib/limelight/templates/sources/scene_spec/scene_spec.rb.template +13 -0
  65. data/lib/limelight/templates/templater.rb +4 -1
  66. data/lib/limelight/templates/templater_logger.rb +3 -0
  67. data/lib/limelight/theater.rb +15 -6
  68. data/lib/limelight/util/downloader.rb +3 -1
  69. data/lib/limelight/util.rb +8 -7
  70. data/lib/limelight/version.rb +3 -3
  71. data/lib/limelight.jar +0 -0
  72. data/productions/examples/8thlight.com/about/props.rb +1 -1
  73. data/productions/examples/8thlight.com/about/styles.rb +1 -1
  74. data/productions/examples/8thlight.com/footer.rb +1 -1
  75. data/productions/examples/8thlight.com/home/props.rb +1 -1
  76. data/productions/examples/8thlight.com/home/styles.rb +1 -1
  77. data/productions/examples/8thlight.com/menu.rb +1 -1
  78. data/productions/examples/8thlight.com/services/props.rb +1 -1
  79. data/productions/examples/8thlight.com/services/styles.rb +1 -1
  80. data/productions/examples/8thlight.com/stages.rb +1 -1
  81. data/productions/examples/8thlight.com/styles.rb +1 -1
  82. data/productions/examples/calculator/players/button.rb +1 -1
  83. data/productions/examples/calculator/players/calculator.rb +1 -1
  84. data/productions/examples/calculator/players/calculator_model.rb +1 -1
  85. data/productions/examples/calculator/props.rb +1 -1
  86. data/productions/examples/calculator/styles.rb +1 -1
  87. data/productions/examples/langstons_ant/init.rb +3 -0
  88. data/productions/examples/langstons_ant/players/ant.rb +1 -1
  89. data/productions/examples/langstons_ant/players/log.rb +1 -1
  90. data/productions/examples/langstons_ant/players/start_stop_button.rb +1 -1
  91. data/productions/examples/langstons_ant/players/world.rb +1 -1
  92. data/productions/examples/langstons_ant/props.rb +1 -1
  93. data/productions/examples/langstons_ant/styles.rb +1 -1
  94. data/productions/examples/sandbox/alerts/incompatible_production/default_scene/props.rb +7 -0
  95. data/productions/examples/sandbox/alerts/incompatible_production/default_scene/styles.rb +29 -0
  96. data/productions/examples/sandbox/alerts/incompatible_production/production.rb +49 -0
  97. data/productions/examples/sandbox/alerts/incompatible_production/spec/default_scene/default_scene_spec.rb +13 -0
  98. data/productions/examples/sandbox/alerts/incompatible_production/spec/spec_helper.rb +5 -0
  99. data/productions/examples/sandbox/alerts/incompatible_production/stages.rb +17 -0
  100. data/productions/examples/sandbox/alerts/incompatible_production/styles.rb +12 -0
  101. data/productions/examples/sandbox/alerts/players/alerts.rb +14 -0
  102. data/productions/examples/sandbox/alerts/props.rb +7 -0
  103. data/productions/examples/sandbox/alerts/styles.rb +43 -0
  104. data/productions/examples/sandbox/background_images/props.rb +19 -0
  105. data/productions/examples/sandbox/background_images/styles.rb +40 -0
  106. data/productions/examples/sandbox/click_me/players/chromaton.rb +1 -1
  107. data/productions/examples/sandbox/click_me/props.rb +1 -1
  108. data/productions/examples/sandbox/click_me/styles.rb +1 -1
  109. data/productions/examples/sandbox/floaters/players/floater.rb +9 -5
  110. data/productions/examples/sandbox/floaters/players/surface.rb +1 -1
  111. data/productions/examples/sandbox/floaters/props.rb +1 -1
  112. data/productions/examples/sandbox/floaters/styles.rb +13 -13
  113. data/productions/examples/sandbox/frameing/players/sandbox.rb +3 -0
  114. data/productions/examples/sandbox/frameing/props.rb +3 -0
  115. data/productions/examples/sandbox/frameing/styles.rb +3 -0
  116. data/productions/examples/sandbox/gradients/players/spinner.rb +1 -1
  117. data/productions/examples/sandbox/gradients/players/teaser.rb +1 -1
  118. data/productions/examples/sandbox/gradients/players/wave.rb +1 -1
  119. data/productions/examples/sandbox/gradients/players/waves.rb +1 -1
  120. data/productions/examples/sandbox/gradients/props.rb +1 -1
  121. data/productions/examples/sandbox/gradients/styles.rb +1 -1
  122. data/productions/examples/sandbox/header.rb +4 -1
  123. data/productions/examples/sandbox/homer/players/homer.rb +1 -1
  124. data/productions/examples/sandbox/homer/props.rb +1 -1
  125. data/productions/examples/sandbox/homer/styles.rb +2 -2
  126. data/productions/examples/sandbox/images/space.png +0 -0
  127. data/productions/examples/sandbox/images_scene/props.rb +3 -0
  128. data/productions/examples/sandbox/images_scene/styles.rb +3 -0
  129. data/productions/examples/sandbox/inputs/players/button_input.rb +1 -1
  130. data/productions/examples/sandbox/inputs/players/check_box_input.rb +1 -1
  131. data/productions/examples/sandbox/inputs/players/combo_box_input.rb +1 -1
  132. data/productions/examples/sandbox/inputs/players/radio_button_input.rb +1 -1
  133. data/productions/examples/sandbox/inputs/players/text_area_input.rb +1 -1
  134. data/productions/examples/sandbox/inputs/players/text_box_input.rb +1 -1
  135. data/productions/examples/sandbox/inputs/props.rb +1 -1
  136. data/productions/examples/sandbox/inputs/styles.rb +1 -1
  137. data/productions/examples/sandbox/kiosk/players/kiosk.rb +36 -0
  138. data/productions/examples/sandbox/kiosk/props.rb +6 -0
  139. data/productions/examples/sandbox/kiosk/styles.rb +34 -0
  140. data/productions/examples/sandbox/players/sandbox.rb +1 -1
  141. data/productions/examples/sandbox/rounded_corners/players/box.rb +1 -1
  142. data/productions/examples/sandbox/rounded_corners/props.rb +1 -1
  143. data/productions/examples/sandbox/rounded_corners/styles.rb +1 -1
  144. data/productions/examples/sandbox/scrolling/players/add_button.rb +1 -1
  145. data/productions/examples/sandbox/scrolling/players/cell.rb +1 -1
  146. data/productions/examples/sandbox/scrolling/props.rb +1 -1
  147. data/productions/examples/sandbox/scrolling/styles.rb +1 -1
  148. data/productions/examples/sandbox/sketching/players/sketchpad.rb +1 -1
  149. data/productions/examples/sandbox/sketching/props.rb +1 -1
  150. data/productions/examples/sandbox/sketching/styles.rb +1 -1
  151. data/productions/examples/sandbox/sounds/players/clip.rb +1 -1
  152. data/productions/examples/sandbox/sounds/props.rb +1 -1
  153. data/productions/examples/sandbox/sounds/styles.rb +1 -1
  154. data/productions/examples/sandbox/spec/alerts/alerts_spec.rb +13 -0
  155. data/productions/examples/sandbox/stages.rb +2 -1
  156. data/productions/examples/sandbox/styles.rb +1 -1
  157. data/productions/examples/sandbox/teaser/players/fader.rb +1 -1
  158. data/productions/examples/sandbox/teaser/props.rb +1 -1
  159. data/productions/examples/sandbox/teaser/styles.rb +1 -1
  160. data/productions/examples/tutorials/tutorial_1/players/sample.rb +1 -1
  161. data/productions/examples/tutorials/tutorial_1/props.rb +1 -1
  162. data/productions/examples/tutorials/tutorial_1/styles.rb +1 -1
  163. data/productions/stage_composer/init.rb +1 -1
  164. data/productions/stage_composer/inspector/players/inspector.rb +1 -1
  165. data/productions/stage_composer/inspector/players/prop_row.rb +1 -1
  166. data/productions/stage_composer/inspector/players/prop_tree.rb +1 -1
  167. data/productions/stage_composer/inspector/players/style_table.rb +1 -1
  168. data/productions/stage_composer/inspector/players/style_value.rb +1 -1
  169. data/productions/stage_composer/inspector/props.rb +1 -1
  170. data/productions/stage_composer/inspector/styles.rb +1 -1
  171. data/productions/stage_composer/lib/init.rb +1 -1
  172. data/productions/stage_composer/lib/limelight/composer/controller.rb +1 -1
  173. data/productions/stage_composer/lib/limelight/composer/lethargy.rb +1 -1
  174. data/productions/stage_composer/production.rb +1 -1
  175. data/productions/stage_composer/stages.rb +1 -1
  176. data/productions/startup/production.rb +49 -0
  177. data/productions/startup/spec/default_scene/default_scene_spec.rb +13 -0
  178. data/productions/startup/spec/spec_helper.rb +5 -0
  179. data/productions/startup/stages.rb +5 -2
  180. data/productions/startup/styles.rb +12 -0
  181. data/productions/startup/welcome/players/browse_button.rb +1 -1
  182. data/productions/startup/welcome/players/download_button.rb +1 -1
  183. data/productions/startup/welcome/players/sandbox_button.rb +1 -1
  184. data/productions/startup/welcome/props.rb +2 -2
  185. data/productions/startup/welcome/styles.rb +1 -1
  186. data/spec/builtin/players/button_spec.rb +1 -1
  187. data/spec/builtin/players/check_box_spec.rb +1 -1
  188. data/spec/builtin/players/combo_box_spec.rb +1 -1
  189. data/spec/builtin/players/image_spec.rb +3 -0
  190. data/spec/builtin/players/password_box_spec.rb +1 -1
  191. data/spec/builtin/players/radio_button_spec.rb +7 -7
  192. data/spec/builtin/players/text_area_spec.rb +1 -1
  193. data/spec/builtin/players/text_box_spec.rb +1 -1
  194. data/spec/builtin/utilities_production/spec_helper.rb +4 -0
  195. data/spec/builtin/utilities_production/utilities_production_spec.rb +143 -0
  196. data/spec/casting_director_spec.rb +7 -7
  197. data/spec/client/playbills_spec.rb +3 -0
  198. data/spec/commands/command_spec.rb +9 -1
  199. data/spec/commands/create_command_spec.rb +35 -5
  200. data/spec/commands/freeze_command_spec.rb +3 -0
  201. data/spec/commands/help_command_spec.rb +6 -3
  202. data/spec/commands/open_command_spec.rb +24 -2
  203. data/spec/commands/pack_command_spec.rb +3 -0
  204. data/spec/commands/unpack_command_spec.rb +4 -1
  205. data/spec/data_spec.rb +5 -16
  206. data/spec/dsl/production_builder_spec.rb +1 -1
  207. data/spec/dsl/prop_builder_spec.rb +19 -19
  208. data/spec/dsl/stage_builder_spec.rb +1 -1
  209. data/spec/dsl/styles_builder_spec.rb +1 -1
  210. data/spec/file_chooser_spec.rb +1 -1
  211. data/spec/file_filter_spec.rb +1 -1
  212. data/spec/file_loader_spec.rb +1 -1
  213. data/spec/gems_spec.rb +3 -0
  214. data/spec/java_util_spec.rb +1 -1
  215. data/spec/main_spec.rb +4 -1
  216. data/spec/paint_action_spec.rb +1 -1
  217. data/spec/pen_spec.rb +1 -1
  218. data/spec/producer_spec.rb +73 -32
  219. data/spec/production_spec.rb +23 -44
  220. data/spec/prop_spec.rb +102 -64
  221. data/spec/scene_spec.rb +3 -3
  222. data/spec/spec_helper.rb +3 -2
  223. data/spec/stage_spec.rb +172 -36
  224. data/spec/string_spec.rb +3 -0
  225. data/spec/studio_spec.rb +131 -3
  226. data/spec/styles_spec.rb +3 -0
  227. data/spec/templates/production_templater_spec.rb +12 -1
  228. data/spec/templates/scene_templater_spec.rb +17 -2
  229. data/spec/templates/templater_logger_spec.rb +3 -0
  230. data/spec/templates/templater_spec.rb +3 -0
  231. data/spec/theater_spec.rb +16 -1
  232. data/spec/util/downloader_spec.rb +3 -0
  233. metadata +56 -6
  234. data/lib/i4jruntime.jar +0 -0
  235. data/lib/junit-4.4.jar +0 -0
data/spec/prop_spec.rb CHANGED
@@ -1,4 +1,4 @@
1
- #- Copyright 2008 8th Light, Inc. All Rights Reserved.
1
+ #- Copyright 2008-2009 8th Light, Inc. All Rights Reserved.
2
2
  #- Limelight and all included source files are distributed under terms of the GNU LGPL.
3
3
 
4
4
  require File.expand_path(File.dirname(__FILE__) + "/spec_helper")
@@ -28,31 +28,43 @@ describe Limelight::Prop do
28
28
 
29
29
  @prop.children.size.should == 1
30
30
  end
31
-
32
- it "should extend added controllers and invoke the extended hook" do
33
- module TestController
34
- class << self
35
- attr_reader :extended_prop
36
- def extended(prop)
37
- @extended_prop = (prop)
38
- end
39
- end
40
-
41
- def test_method
31
+
32
+ module TestPlayer
33
+ class << self
34
+ attr_reader :extended_prop
35
+
36
+ def extended(prop)
37
+ @extended_prop = (prop)
42
38
  end
43
39
  end
44
-
45
- @prop.include_player(TestController)
46
-
47
- TestController.extended_prop.should == @prop
40
+
41
+ def test_method
42
+ end
43
+
44
+ attr_reader :was_casted
45
+ def casted
46
+ @was_casted = true
47
+ end
48
+ end
49
+
50
+ it "should extend added controllers and invoke the extended hook" do
51
+ @prop.include_player(TestPlayer)
52
+
53
+ TestPlayer.extended_prop.should == @prop
48
54
  @prop.respond_to?(:test_method).should == true
49
55
  end
50
-
56
+
57
+ it "should call the player's casted method" do
58
+ @prop.include_player(TestPlayer)
59
+
60
+ @prop.was_casted.should == true
61
+ end
62
+
51
63
  it "should have an id" do
52
64
  @prop.illuminate
53
65
  @prop.id.should == "root"
54
66
  end
55
-
67
+
56
68
  def build_prop_tree
57
69
  @child1 = Limelight::Prop.new(:id => "child1", :name => "child_class")
58
70
  @child2 = Limelight::Prop.new(:id => "child2", :name => "child_class")
@@ -60,12 +72,12 @@ describe Limelight::Prop do
60
72
  @grand_child2 = Limelight::Prop.new(:id => "grand_child2", :name => "grand_child_class")
61
73
  @grand_child3 = Limelight::Prop.new(:id => "grand_child3", :name => "grand_child_class")
62
74
  @grand_child4 = Limelight::Prop.new(:id => "grand_child4", :name => "grand_child_class")
63
-
75
+
64
76
  @prop << @child1 << @child2
65
77
  @child1 << @grand_child1 << @grand_child2
66
78
  @child2 << @grand_child3 << @grand_child4
67
79
  end
68
-
80
+
69
81
  it "should find children by id" do
70
82
  build_prop_tree
71
83
  @scene.find("blah").should == nil
@@ -77,14 +89,14 @@ describe Limelight::Prop do
77
89
  @scene.find("grand_child3").should be(@grand_child3)
78
90
  @scene.find("grand_child4").should be(@grand_child4)
79
91
  end
80
-
92
+
81
93
  it "should find children by name" do
82
94
  build_prop_tree
83
95
  @prop.find_by_name("root_class").should == [@prop]
84
96
  @prop.find_by_name("child_class").should == [@child1, @child2]
85
97
  @prop.find_by_name("grand_child_class").should == [@grand_child1, @grand_child2, @grand_child3, @grand_child4]
86
98
  end
87
-
99
+
88
100
  it "should get and set text" do
89
101
  @prop.text = "blah"
90
102
  @prop.text.should == "blah"
@@ -93,77 +105,77 @@ describe Limelight::Prop do
93
105
  @prop.text = nil
94
106
  @prop.text.should == ""
95
107
  end
96
-
108
+
97
109
  it "should have controllers" do
98
110
  prop = Limelight::Prop.new(:players => "abc, xyz")
99
111
  @scene << prop
100
112
  prop.players.should == "abc, xyz"
101
113
  end
102
-
114
+
103
115
  it "should get populated through constructor" do
104
116
  prop = Limelight::Prop.new(:name => "my_name", :id => "123", :players => "a, b, c")
105
117
  @scene << prop
106
-
118
+
107
119
  prop.name.should == "my_name"
108
120
  prop.id.should == "123"
109
121
  end
110
-
122
+
111
123
  it "should populate styles through constructor" do
112
124
  prop = Limelight::Prop.new(:width => "100", :text_color => "white", :background_image => "apple.jpg")
113
125
  @scene << prop
114
-
126
+
115
127
  prop.style.width.should == "100"
116
128
  prop.style.text_color.should == "#ffffffff"
117
129
  prop.style.background_image.should == "apple.jpg"
118
130
  end
119
-
131
+
120
132
  it "should define event through constructor using a string" do
121
133
  prop = Limelight::Prop.new(:on_mouse_entered => "return event")
122
134
  @scene << prop
123
-
135
+
124
136
  value = prop.mouse_entered("my event")
125
-
137
+
126
138
  value.should == "my event"
127
139
  end
128
-
140
+
129
141
  it "should pass scene on to children" do
130
142
  child = Limelight::Prop.new(:name => "child")
131
-
143
+
132
144
  @prop.parent.should == @scene
133
145
  @prop.scene.should == @scene
134
-
146
+
135
147
  @prop << child
136
148
  child.parent.should == @prop
137
149
  child.scene.should == @scene
138
150
  end
139
-
151
+
140
152
  it "should set styles upon adding to parent" do
141
153
  styles = Limelight::build_styles { child { width 123 } }
142
154
  scene = Limelight::Scene.new(:casting_director => @casting_director, :styles => styles)
143
155
  prop = Limelight::Prop.new(:name => "child")
144
156
  scene.illuminate
145
-
157
+
146
158
  scene << prop
147
-
159
+
148
160
  prop.style.width.should == "123"
149
161
  end
150
-
162
+
151
163
  it "should set styles upon adding to parent" do
152
164
  prop = Limelight::Prop.new(:name => "child")
153
-
165
+
154
166
  @casting_director.should_receive(:fill_cast).with(prop)
155
-
167
+
156
168
  @scene << prop
157
169
  end
158
-
170
+
159
171
  it "should use populate data included by players" do
160
172
  prop = Limelight::Prop.new(:name => "child", :foo => "bar")
161
173
  @casting_director.should_receive(:fill_cast).with(prop) do
162
174
  prop.instance_eval "def foo=(value); @foo = value; end; def foo; return @foo; end;"
163
175
  end
164
-
176
+
165
177
  @scene << prop
166
-
178
+
167
179
  prop.foo.should == "bar"
168
180
  end
169
181
 
@@ -206,54 +218,54 @@ describe Limelight::Prop do
206
218
  prop.hover_style.should == style2
207
219
  prop.hover_style.should have_extension(style4)
208
220
  end
209
-
221
+
210
222
  it "should be able to remove children" do
211
223
  child1 = Limelight::Prop.new()
212
224
  child2 = Limelight::Prop.new()
213
225
  child3 = Limelight::Prop.new()
214
226
  @prop << child1 << child2 << child3
215
-
227
+
216
228
  @prop.remove(child2)
217
-
229
+
218
230
  @prop.children.length.should == 2
219
- @prop.children.should_not include(child2)
231
+ @prop.children.include?(child2).should == false
220
232
  @prop.panel.children.length.should == 2
221
- @prop.panel.children.should_not include(child2.panel)
233
+ @prop.panel.children.include?(child2.panel).should == false
222
234
  end
223
-
235
+
224
236
  it "should make dimensions accessible" do
225
237
  @prop.panel.should_receive(:get_bounding_box).and_return("whole area")
226
238
  @prop.panel.should_receive(:get_box_inside_borders).and_return("area inside borders")
227
-
239
+
228
240
  @prop.area.should == "whole area"
229
241
  @prop.bordered_area.should == "area inside borders"
230
242
  end
231
-
243
+
232
244
  it "should give you a pen" do
233
245
  graphics = make_mock("graphics", :setColor => nil, :setStroke => nil, :setRenderingHint => nil)
234
246
  @prop.panel.should_receive(:getGraphics).and_return(graphics)
235
-
247
+
236
248
  pen = @prop.pen
237
-
249
+
238
250
  pen.context.should be(graphics)
239
251
  end
240
-
252
+
241
253
  it "should set after paint action" do
242
254
  block = Proc.new { |pen| }
243
-
255
+
244
256
  @prop.after_painting &block
245
-
257
+
246
258
  action = @prop.panel.after_paint_action
247
259
  action.should_not == nil
248
260
  action.class.should == Limelight::PaintAction
249
261
  action.block.should == block
250
262
  end
251
-
263
+
252
264
  it "should clear after paint action" do
253
265
  @prop.after_painting { |pen| puts "blah" }
254
-
266
+
255
267
  @prop.after_painting nil
256
-
268
+
257
269
  @prop.panel.after_paint_action.should == nil
258
270
  end
259
271
 
@@ -265,7 +277,7 @@ describe Limelight::Prop do
265
277
  three
266
278
  end
267
279
  end
268
-
280
+
269
281
  @prop.children.length.should == 2
270
282
  @prop.children[0].name.should == "one"
271
283
  @prop.children[1].name.should == "two"
@@ -280,9 +292,9 @@ describe Limelight::Prop do
280
292
  two do
281
293
  three
282
294
  end
283
-
295
+
284
296
  end
285
-
297
+
286
298
  @prop.children.length.should == 2
287
299
  @prop.children[0].name.should == "one"
288
300
  @prop.children[0].text.should == "hello"
@@ -329,14 +341,14 @@ describe Limelight::Prop do
329
341
  @prop.accepts_mouse_released().should == false
330
342
  @prop.instance_eval("def mouse_released(e); puts 'hi'; end;")
331
343
  @prop.accepts_mouse_released().should == true
332
- end
344
+ end
333
345
 
334
346
  end
335
347
 
336
348
  describe "id" do
337
349
 
338
350
  it "should index its id when illuminated" do
339
- @scene.find("root").should == @prop
351
+ @scene.find("root").should == @prop
340
352
  end
341
353
 
342
354
  it "should unindex ids when removing children" do
@@ -360,6 +372,32 @@ describe Limelight::Prop do
360
372
  @scene.find("child2").should == nil
361
373
  end
362
374
 
375
+ it "should unindex grandchildren on remove all" do
376
+ grandchild = Limelight::Prop.new(:id => "grandchild")
377
+ child = Limelight::Prop.new(:id => "child")
378
+ child << grandchild
379
+ @prop << child
380
+
381
+ @prop.remove_all
382
+
383
+ @scene.find("child").should == nil
384
+ @scene.find("grandchild").should == nil
385
+ end
386
+
363
387
  end
364
-
388
+
389
+ describe "launch" do
390
+
391
+ it "should launch a url" do
392
+ os = mock("Limelight OS")
393
+ instance = mock("Limelight OS instance", :os => os)
394
+ Java::limelight.Context.stub!(:instance).and_return(instance)
395
+
396
+ os.should_receive(:launch).with("http://www.google.com")
397
+
398
+ @prop.launch("http://www.google.com")
399
+ end
400
+
401
+ end
402
+
365
403
  end
data/spec/scene_spec.rb CHANGED
@@ -1,4 +1,4 @@
1
- #- Copyright 2008 8th Light, Inc. All Rights Reserved.
1
+ #- Copyright 2008-2009 8th Light, Inc. All Rights Reserved.
2
2
  #- Limelight and all included source files are distributed under terms of the GNU LGPL.
3
3
 
4
4
  require File.expand_path(File.dirname(__FILE__) + "/spec_helper")
@@ -135,7 +135,7 @@ describe Limelight::Scene do
135
135
 
136
136
  @scene.find("grandchild_id").should == nil
137
137
  end
138
-
138
+
139
139
  it "should convert ids to string when finding" do
140
140
  prop = Limelight::Prop.new(:id => 123)
141
141
  @scene << prop
@@ -143,5 +143,5 @@ describe Limelight::Scene do
143
143
  @scene.find(123).should == prop
144
144
  end
145
145
  end
146
-
146
+
147
147
  end
data/spec/spec_helper.rb CHANGED
@@ -1,12 +1,13 @@
1
- #- Copyright 2008 8th Light, Inc. All Rights Reserved.
1
+ #- Copyright 2008-2009 8th Light, Inc. All Rights Reserved.
2
2
  #- Limelight and all included source files are distributed under terms of the GNU LGPL.
3
3
 
4
4
  require File.expand_path(File.dirname(__FILE__) + "/../lib/init")
5
5
 
6
6
  require 'spec'
7
7
 
8
+ Limelight::Main.new.configureTestContext
8
9
  context = Limelight::Context.instance
9
- context.frameManager = Java::limelight.ui.model.AlertFrameManager.new
10
+ context.frameManager = Java::limelight.ui.model.InertFrameManager.new
10
11
 
11
12
  def make_mock(name, stubs = {})
12
13
  the_mock = mock(name)
data/spec/stage_spec.rb CHANGED
@@ -1,66 +1,202 @@
1
- #- Copyright 2008 8th Light, Inc. All Rights Reserved.
1
+ #- Copyright 2008-2009 8th Light, Inc. All Rights Reserved.
2
2
  #- Limelight and all included source files are distributed under terms of the GNU LGPL.
3
3
 
4
4
  require File.expand_path(File.dirname(__FILE__) + "/spec_helper")
5
5
  require 'limelight/stage'
6
+ require 'limelight/scene'
7
+ require 'limelight/theater'
8
+ require 'limelight/studio'
6
9
 
7
10
  describe Limelight::Stage do
8
11
 
9
12
  before(:each) do
10
- @theater = make_mock("theater")
11
- @__stage__ = Limelight::Stage.new(@theater, "George")
13
+ @theater = Limelight::Theater.new
14
+ @stage = @theater.add_stage("George")
15
+ @stage.should_remain_hidden = true
16
+ Limelight::Context.instance.frameManager = Java::limelight.ui.model.InertFrameManager.new
12
17
  end
13
-
18
+
14
19
  it "should have a name" do
15
20
  stage = Limelight::Stage.new(@theater, "Jose")
16
21
  stage.theater.should be(@theater)
17
22
  stage.name.should == "Jose"
18
23
  end
19
-
24
+
20
25
  it "should have a title which default to it's name" do
21
- @__stage__.title.should == "George"
22
-
23
- @__stage__.title = "Once Upon a Test"
24
-
25
- @__stage__.title.should == "Once Upon a Test"
26
+ @stage.title.should == "George"
27
+
28
+ @stage.title = "Once Upon a Test"
29
+
30
+ @stage.title.should == "Once Upon a Test"
26
31
  end
27
-
32
+
28
33
  it "should have size" do
29
- @__stage__.size.should == [800, 800]
30
-
31
- @__stage__.size = 123, 456
32
-
33
- @__stage__.size.should == [123, 456]
34
+ @stage.size.should == ["500", "500"]
35
+
36
+ @stage.size = 123, 456
37
+ @stage.size.should == ["123", "456"]
38
+
39
+ @stage.size = [123, 456]
40
+ @stage.size.should == ["123", "456"]
41
+
42
+ @stage.size = "50%", "100%"
43
+ @stage.size.should == ["50%", "100%"]
34
44
  end
35
-
45
+
36
46
  it "should have location" do
37
- @__stage__.location.should == [200, 25]
38
-
39
- @__stage__.location = 123, 456
40
-
41
- @__stage__.location.should == [123, 456]
47
+ @stage.location.should == ["center", "center"]
48
+
49
+ @stage.location = 123, 456
50
+ @stage.location.should == ["123", "456"]
51
+
52
+ @stage.location = [123, 456]
53
+ @stage.location.should == ["123", "456"]
54
+
55
+ @stage.location = "left", "top"
56
+ @stage.location.should == ["left", "top"]
57
+
58
+ @stage.location = "20%", "40%"
59
+ @stage.location.should == ["20%", "40%"]
42
60
  end
43
-
61
+
44
62
  it "should not allow name changes" do
45
- lambda { @__stage__.name = "new name" }.should raise_error
63
+ lambda { @stage.name = "new name" }.should raise_error
64
+ end
65
+
66
+ it "should set the background color" do
67
+ @stage.background_color = "red"
68
+
69
+ @stage.background_color.should == "#FF0000"
70
+ end
71
+
72
+ it "should be framed or not" do
73
+ @stage.framed = false
74
+ @stage.frame.should be_undecorated
75
+ @stage.should_not be_framed
76
+
77
+ @stage.framed = true
78
+ @stage.frame.should_not be_undecorated
79
+ @stage.should be_framed
46
80
  end
47
81
 
48
- it "should call scene.scene_opened at the end of opening a scene" do
49
- scene = make_mock("scene", :visible= => nil, :illuminate => nil)
50
- scene.should_receive(:scene_opened)
82
+ it "should be always on top" do
83
+ @stage.always_on_top = true
84
+ @stage.should be_always_on_top
85
+ @stage.frame.should be_always_on_top
51
86
 
52
- @__stage__.frame.stub!(:open)
53
- @__stage__.stub!(:load_scene)
54
- @__stage__.open(scene)
87
+ @stage.always_on_top = false
88
+ @stage.should_not be_always_on_top
89
+ @stage.frame.should_not be_always_on_top
55
90
  end
56
91
 
57
- it "should illuminate the scene when opening it" do
58
- scene = make_mock("scene", :visible= => nil, :scene_opened => nil)
59
- scene.should_receive(:illuminate)
92
+ it "should set kiosk mode" do
93
+ @stage.kiosk?.should == false
94
+ @stage.frame.should_not be_kiosk
95
+
96
+ @stage.kiosk = true
97
+ @stage.kiosk?.should == true
98
+ @stage.frame.should be_kiosk
99
+ end
100
+
101
+ it "should ask the scene if close is allowed" do
102
+ @stage.should_allow_close.should == true
103
+
104
+ scene = mock("scene")
105
+ @stage.stub_current_scene scene
106
+ @stage.should_allow_close.should == true
107
+
108
+ scene.stub!(:allow_close?).and_return false
109
+ @stage.should_allow_close.should == false
110
+
111
+ scene.stub!(:allow_close?).and_return true
112
+ @stage.should_allow_close.should == true
113
+ end
114
+
115
+ it "should allow contructor options" do
116
+ stage = Limelight::Stage.new(@theater, "Ringo", :framed => false, :background_color => "blue")
117
+ stage.framed?.should == false
118
+ stage.background_color.should == "#0000FF"
119
+ end
120
+
121
+ it "should handle vitality" do
122
+ @stage.vital?.should == true
123
+ @stage.vital = false
124
+ @stage.vital?.should == false
125
+ @stage.frame.isVital.should == false
126
+ end
127
+
128
+ describe "when opening a scene" do
129
+ before(:each) do
130
+ @scene = Limelight::Scene.new
131
+ @scene.stub!(:illuminate)
132
+ end
133
+
134
+ it "should call scene.scene_opened at the end of opening a scene" do
135
+ @scene.should_receive(:scene_opened)
136
+
137
+ @stage.open(@scene)
138
+ end
139
+
140
+ it "should illuminate the scene when opening it" do
141
+ @scene.should_receive(:illuminate)
142
+
143
+ @stage.open(@scene)
144
+ end
145
+
146
+ it "should set the stage on the scene" do
147
+ @scene.should_receive(:stage=).with(@stage)
148
+
149
+ @stage.open(@scene)
150
+ end
151
+
152
+ it "should hide and show" do
153
+ @stage.open(@scene)
154
+ @stage.should_remain_hidden = false
155
+ @stage.frame.should_receive(:visible=).with(false)
156
+ @stage.hide
157
+
158
+ @stage.frame.should_receive(:visible=).with(true)
159
+ @stage.show
160
+ end
161
+
162
+ it "should open the frame when opening" do
163
+ @stage.should_remain_hidden = false
164
+ @stage.frame.should_receive(:open)
165
+
166
+ @stage.open(@scene)
167
+ end
168
+
169
+ it "should not open the frame when opening and in hidden mode" do
170
+ @stage.should_remain_hidden = true
171
+ @stage.frame.should_not_receive(:open)
172
+
173
+ @stage.open(@scene)
174
+ end
175
+
176
+ it "should clean up on close" do
177
+ @stage.open(@scene)
178
+
179
+ @stage.close
180
+
181
+ @scene.visible?.should == false
182
+ @stage.current_scene.should == nil
183
+ end
184
+
185
+ it "should be removed from the theater when closed" do
186
+ @stage.open(@scene)
187
+ @theater["George"].should be(@stage)
188
+
189
+ @stage.close
190
+ @theater["George"].should == nil
191
+ end
192
+
193
+ it "should open an alert" do
194
+ Limelight::Studio.utilities_production.should_receive(:alert).with("Some Message")
195
+
196
+ @stage.alert("Some Message")
197
+ sleep(0.01)
198
+ end
60
199
 
61
- @__stage__.frame.stub!(:open)
62
- @__stage__.stub!(:load_scene)
63
- @__stage__.open(scene)
64
200
  end
65
201
 
66
202
  end
data/spec/string_spec.rb CHANGED
@@ -1,3 +1,6 @@
1
+ #- Copyright � 2008-2009 8th Light, Inc. All Rights Reserved.
2
+ #- Limelight and all included source files are distributed under terms of the GNU LGPL.
3
+
1
4
  require File.expand_path(File.dirname(__FILE__) + "/spec_helper")
2
5
  require 'limelight/string'
3
6