sproutcore 1.5.0.pre.4 → 1.5.0.pre.4.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (174) hide show
  1. data/CHANGELOG +6 -0
  2. data/VERSION.yml +1 -1
  3. data/lib/Buildfile +1 -1
  4. data/lib/buildtasks/build.rake +14 -6
  5. data/lib/buildtasks/manifest.rake +171 -72
  6. data/lib/frameworks/sproutcore/Buildfile +3 -5
  7. data/lib/frameworks/sproutcore/CHANGELOG.md +9 -0
  8. data/lib/frameworks/sproutcore/apps/test_controls/resources/main_page.js +2 -1
  9. data/lib/frameworks/sproutcore/apps/test_controls/resources/progress_page.js +7 -17
  10. data/lib/frameworks/sproutcore/frameworks/bootstrap/system/browser.js +7 -1
  11. data/lib/frameworks/sproutcore/frameworks/bootstrap/system/loader.js +14 -1
  12. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/browser.js +0 -2
  13. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/event.js +1 -1
  14. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/root_responder.js +14 -3
  15. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/template/collection.js +1 -1
  16. data/lib/frameworks/sproutcore/frameworks/datastore/models/record.js +2 -2
  17. data/lib/frameworks/sproutcore/frameworks/datastore/models/record_attribute.js +6 -0
  18. data/lib/frameworks/sproutcore/frameworks/datastore/system/store.js +1 -1
  19. data/lib/frameworks/sproutcore/frameworks/desktop/mixins/scrollable.js +1 -1
  20. data/lib/frameworks/sproutcore/frameworks/desktop/panes/alert.js +49 -4
  21. data/lib/frameworks/sproutcore/frameworks/desktop/panes/menu.js +8 -0
  22. data/lib/frameworks/sproutcore/frameworks/desktop/panes/panel.js +46 -1
  23. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/button.js +32 -5
  24. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/checkbox.js +32 -6
  25. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/disclosure.js +31 -3
  26. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/progress.js +15 -3
  27. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/radio.js +28 -7
  28. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/segmented.js +1 -1
  29. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/slider.js +20 -1
  30. data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/well.js +2 -4
  31. data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/alert/ui.js +40 -34
  32. data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/menu/ui.js +35 -0
  33. data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/panel/ui.js +43 -0
  34. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/button/ui.js +47 -0
  35. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/checkbox/methods.js +6 -16
  36. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/checkbox/ui.js +21 -0
  37. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/disclosure/ui.js +41 -1
  38. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/progress/ui.js +128 -0
  39. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/radio/ui.js +93 -3
  40. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/scroll/ui.js +13 -1
  41. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/scroller.js +28 -0
  42. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/segmented/methods.js +47 -0
  43. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/segmented/ui.js +51 -0
  44. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/toolbar/method.js +33 -0
  45. data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/toolbar/ui.js +29 -0
  46. data/lib/frameworks/sproutcore/frameworks/desktop/views/checkbox.js +28 -0
  47. data/lib/frameworks/sproutcore/frameworks/desktop/views/disclosure.js +9 -1
  48. data/lib/frameworks/sproutcore/frameworks/desktop/views/list_item.js +148 -134
  49. data/lib/frameworks/sproutcore/frameworks/desktop/views/menu_item.js +18 -0
  50. data/lib/frameworks/sproutcore/frameworks/desktop/views/menu_scroll.js +30 -3
  51. data/lib/frameworks/sproutcore/frameworks/desktop/views/progress.js +9 -0
  52. data/lib/frameworks/sproutcore/frameworks/desktop/views/radio.js +52 -4
  53. data/lib/frameworks/sproutcore/frameworks/desktop/views/scroll.js +2 -1
  54. data/lib/frameworks/sproutcore/frameworks/desktop/views/scroller.js +36 -3
  55. data/lib/frameworks/sproutcore/frameworks/desktop/views/segmented.js +1 -1
  56. data/lib/frameworks/sproutcore/frameworks/desktop/views/slider.js +9 -1
  57. data/lib/frameworks/sproutcore/frameworks/desktop/views/split.js +15 -4
  58. data/lib/frameworks/sproutcore/frameworks/desktop/views/split_divider.js +1 -6
  59. data/lib/frameworks/sproutcore/frameworks/desktop/views/tab.js +4 -2
  60. data/lib/frameworks/sproutcore/frameworks/desktop/views/toolbar.js +7 -0
  61. data/lib/frameworks/sproutcore/frameworks/desktop/views/well.js +1 -2
  62. data/lib/frameworks/sproutcore/frameworks/forms/views/form.js +3 -1
  63. data/lib/frameworks/sproutcore/frameworks/foundation/english.lproj/bootstrap.rhtml +1 -1
  64. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/auto_resize.js +0 -9
  65. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/editable.js +1 -1
  66. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/flowed_layout.js +2 -0
  67. data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/canvas_image.js +1 -1
  68. data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/label.js +25 -1
  69. data/lib/frameworks/sproutcore/frameworks/foundation/system/chance.js +64 -0
  70. data/lib/frameworks/sproutcore/frameworks/foundation/system/module.js +34 -27
  71. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/editable/ui.js +42 -0
  72. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_text_field/ui.js +62 -0
  73. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/image/ui.js +0 -8
  74. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/label/ui.js +12 -0
  75. data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/text_field/ui.js +48 -1
  76. data/lib/frameworks/sproutcore/frameworks/foundation/views/field.js +19 -0
  77. data/lib/frameworks/sproutcore/frameworks/foundation/views/image.js +2 -0
  78. data/lib/frameworks/sproutcore/frameworks/foundation/views/label.js +11 -5
  79. data/lib/frameworks/sproutcore/frameworks/foundation/views/text_field.js +152 -74
  80. data/lib/frameworks/sproutcore/frameworks/runtime/private/observer_queue.js +12 -9
  81. data/lib/frameworks/sproutcore/frameworks/runtime/system/logger.js +1476 -176
  82. data/lib/frameworks/sproutcore/frameworks/runtime/system/run_loop.js +0 -2
  83. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/logger.js +227 -32
  84. data/lib/frameworks/sproutcore/frameworks/statechart/system/state.js +11 -11
  85. data/lib/frameworks/sproutcore/frameworks/statechart/system/statechart.js +1 -1
  86. data/lib/frameworks/sproutcore/frameworks/testing/system/runner.js +10 -0
  87. data/lib/frameworks/sproutcore/lib/index.rhtml +30 -8
  88. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/18px/segmented.css +4 -4
  89. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/24px/segmented.css +4 -4
  90. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/30px/segmented.css +4 -4
  91. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/44px/segmented.css +4 -4
  92. data/lib/frameworks/sproutcore/themes/ace/resources/segmented/segmented.css +4 -0
  93. data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/slider.css +5 -1
  94. data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/slider.js +11 -3
  95. data/lib/frameworks/sproutcore/themes/ace/resources/well/well.css +7 -8
  96. data/lib/frameworks/sproutcore/themes/ace/resources/well/well.js +2 -4
  97. data/lib/gen/app/templates/apps/@target_name@/Buildfile +14 -0
  98. data/lib/gen/app/templates/apps/@target_name@/theme.js +27 -0
  99. data/lib/gen/html_app/templates/apps/@target_name@/resources/stylesheets/@target_name@.css +4 -0
  100. data/lib/gen/project/templates/@filename@/Buildfile +7 -2
  101. data/lib/gen/theme/templates/themes/@target_name@/Buildfile +3 -0
  102. data/lib/gen/theme/templates/themes/@target_name@/theme.js +23 -0
  103. data/lib/sproutcore/builders.rb +2 -0
  104. data/lib/sproutcore/builders/chance.rb +64 -0
  105. data/lib/sproutcore/builders/chance_file.rb +59 -0
  106. data/lib/sproutcore/builders/combine.rb +0 -45
  107. data/lib/sproutcore/builders/html.rb +1 -1
  108. data/lib/sproutcore/builders/minify.rb +5 -17
  109. data/lib/sproutcore/builders/module.rb +2 -2
  110. data/lib/sproutcore/builders/string_wrapper.rb +13 -15
  111. data/lib/sproutcore/helpers.rb +1 -1
  112. data/lib/sproutcore/helpers/minifier.rb +56 -0
  113. data/lib/sproutcore/helpers/static_helper.rb +86 -40
  114. data/lib/sproutcore/models/generator.rb +16 -0
  115. data/lib/sproutcore/models/manifest_entry.rb +8 -1
  116. data/lib/sproutcore/models/target.rb +101 -33
  117. data/lib/sproutcore/tools.rb +0 -7
  118. data/lib/sproutcore/tools/build.rb +2 -37
  119. data/spec/buildtasks/manifest/prepare_build_tasks/chance_spec.rb +100 -0
  120. data/spec/buildtasks/manifest/prepare_build_tasks/combine_spec.rb +86 -9
  121. data/spec/buildtasks/manifest/prepare_build_tasks/css_spec.rb +1 -1
  122. data/spec/buildtasks/manifest/prepare_build_tasks/minify_spec.rb +1 -1
  123. data/spec/buildtasks/manifest/prepare_build_tasks/module_info_spec.rb +96 -0
  124. data/spec/buildtasks/manifest/prepare_build_tasks/module_spec.rb +83 -0
  125. data/spec/buildtasks/manifest/prepare_build_tasks/packed_spec.rb +37 -4
  126. data/spec/buildtasks/manifest/spec_helper.rb +4 -0
  127. data/spec/fixtures/builder_tests/Buildfile +11 -9
  128. data/spec/fixtures/builder_tests/apps/chance_test/Buildfile +14 -0
  129. data/spec/fixtures/builder_tests/apps/chance_test/core.js +27 -0
  130. data/spec/fixtures/builder_tests/apps/chance_test/main.js +30 -0
  131. data/spec/fixtures/builder_tests/apps/chance_test/resources/demo.css +6 -0
  132. data/spec/fixtures/builder_tests/apps/chance_test/resources/last_file.css +7 -0
  133. data/spec/fixtures/builder_tests/apps/chance_test/resources/loading.rhtml +9 -0
  134. data/spec/fixtures/builder_tests/apps/chance_test/resources/main_page.js +24 -0
  135. data/spec/fixtures/builder_tests/apps/chance_test/resources/z_first_file.css +6 -0
  136. data/spec/fixtures/builder_tests/apps/chance_test/theme.js +27 -0
  137. data/spec/fixtures/builder_tests/apps/module_test/module.js +1 -0
  138. data/spec/fixtures/builder_tests/apps/module_test/modules/deferred_module/english.lproj/req_style_2.css +0 -0
  139. data/spec/fixtures/builder_tests/apps/module_test/modules/deferred_module/english.lproj/test.rhtml +1 -0
  140. data/spec/fixtures/builder_tests/apps/module_test/modules/deferred_module/javascript.js +1 -0
  141. data/spec/fixtures/builder_tests/apps/module_test/modules/deferred_module/lib/alt_layout.rhtml +0 -0
  142. data/spec/fixtures/builder_tests/apps/module_test/modules/deferred_module/req_js_2.js +0 -0
  143. data/spec/fixtures/builder_tests/apps/module_test/modules/dynamic_req_target_1/dynamic_req_js_1.js +0 -0
  144. data/spec/fixtures/builder_tests/apps/module_test/modules/dynamic_req_target_1/english.lproj/dynamic_req_style_1.css +0 -0
  145. data/spec/fixtures/builder_tests/apps/module_test/modules/inlined_module/README +0 -0
  146. data/spec/fixtures/builder_tests/apps/module_test/modules/required_target/english.lproj/req_style_1.css +0 -0
  147. data/spec/fixtures/builder_tests/apps/module_test/modules/required_target/english.lproj/strings.js +4 -0
  148. data/spec/fixtures/builder_tests/apps/module_test/modules/required_target/english.lproj/test.rhtml +1 -0
  149. data/spec/fixtures/builder_tests/apps/module_test/modules/required_target/req_js_1.js +0 -0
  150. data/spec/fixtures/helper_tests/apps/minifier_test/core.js +8 -0
  151. data/spec/fixtures/real_world/Buildfile +11 -1
  152. data/spec/fixtures/real_world/apps/account/modules/preferences/README +0 -0
  153. data/spec/fixtures/real_world/apps/calendar/modules/preferences/README +0 -0
  154. data/spec/fixtures/real_world/apps/contacts/modules/preferences/README +0 -0
  155. data/spec/fixtures/real_world/apps/contacts/modules/printing/README +0 -0
  156. data/spec/fixtures/real_world/apps/mail/modules/preferences/README +0 -0
  157. data/spec/fixtures/real_world/apps/mail/modules/printing/README +0 -0
  158. data/spec/fixtures/real_world/apps/photos/modules/email/README +0 -0
  159. data/spec/fixtures/real_world/apps/photos/modules/preferences/README +0 -0
  160. data/spec/lib/builders/chance_file_spec.rb +63 -0
  161. data/spec/lib/builders/chance_spec.rb +81 -0
  162. data/spec/lib/builders/module_spec.rb +133 -0
  163. data/spec/lib/helpers/minifier.rb +31 -0
  164. data/spec/lib/models/project/find_targets_for_spec.rb +1 -1
  165. data/vendor/chance/lib/chance/imagers/data_url.rb +68 -17
  166. data/vendor/chance/lib/chance/instance.rb +55 -30
  167. data/vendor/chance/lib/chance/parser.rb +1 -1
  168. data/vendor/chance/lib/chance/slicing.rb +39 -3
  169. metadata +52 -7
  170. data/lib/frameworks/sproutcore/frameworks/foundation/system/logger.js +0 -163
  171. data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/logger.js +0 -44
  172. data/spec/buildtasks/manifest/prepare_build_tasks/bundle_spec.rb +0 -254
  173. data/spec/fixtures/builder_tests/apps/bundle_test/bundle.js +0 -1
  174. data/spec/lib/builders/bundle_spec.rb +0 -295
@@ -1,254 +0,0 @@
1
- require "buildtasks/manifest/spec_helper"
2
-
3
- describe "manifest:prepare_build_tasks:bundle_loaded" do
4
-
5
- include SC::SpecHelpers
6
- include SC::ManifestSpecHelpers
7
-
8
- describe "app target" do
9
-
10
- before do
11
- std_before :builder_tests, :bundle_test
12
-
13
- # most of these tests assume load_debug is turned off like it would be
14
- # in production mode
15
- @target.config.load_debug = false
16
- @target.config.theme = nil
17
- @target.config.timestamp_urls = false
18
-
19
- # run std rules to run manifest. Then verify preconditions to make sure
20
- # no other changes to the build system effect the ability of these tests
21
- # to run properly.
22
- @manifest.build!
23
- end
24
-
25
- def run_task
26
- @manifest.prepare!
27
- super('manifest:prepare_build_tasks:javascript')
28
- end
29
-
30
- it "should run manifest:prepare_build_tasks:setup as prereq" do
31
- should_run('manifest:prepare_build_tasks:setup') { run_task }
32
- end
33
-
34
- it "should not create a bundle_loaded.js entry for an app" do
35
- run_task
36
- @manifest.entry_for('bundle_loaded.js').should be_nil
37
- end
38
-
39
- end
40
-
41
- describe "static framework target" do
42
-
43
- before do
44
- std_before :builder_tests, :req_target_1
45
-
46
- # most of these tests assume load_debug is turned off like it would be
47
- # in production mode
48
- @target.config.load_debug = false
49
- @target.config.theme = nil
50
- @target.config.timestamp_urls = false
51
-
52
- # run std rules to run manifest. Then verify preconditions to make sure
53
- # no other changes to the build system effect the ability of these tests
54
- # to run properly.
55
- @manifest.build!
56
- end
57
-
58
- def run_task
59
- @manifest.prepare!
60
- super('manifest:prepare_build_tasks:javascript')
61
- end
62
-
63
- it "should run manifest:prepare_build_tasks:setup as prereq" do
64
- should_run('manifest:prepare_build_tasks:setup') { run_task }
65
- end
66
-
67
- it "should create a bundle_loaded.js entry" do
68
- run_task
69
- @manifest.entry_for('bundle_loaded.js').should_not be_nil
70
- end
71
-
72
- end
73
-
74
- describe "dynamic framework target" do
75
-
76
- before do
77
- std_before :builder_tests, :req_target_2
78
-
79
- # most of these tests assume load_debug is turned off like it would be
80
- # in production mode
81
- @target.config.load_debug = false
82
- @target.config.theme = nil
83
- @target.config.timestamp_urls = false
84
-
85
- # run std rules to run manifest. Then verify preconditions to make sure
86
- # no other changes to the build system effect the ability of these tests
87
- # to run properly.
88
- @manifest.build!
89
- end
90
-
91
- def run_task
92
- @manifest.prepare!
93
- super('manifest:prepare_build_tasks:javascript')
94
- end
95
-
96
- it "should run manifest:prepare_build_tasks:setup as prereq" do
97
- should_run('manifest:prepare_build_tasks:setup') { run_task }
98
- end
99
-
100
- it "should create a bundle_loaded.js entry" do
101
- run_task
102
- @manifest.entry_for('bundle_loaded.js').should_not be_nil
103
- end
104
-
105
- end
106
-
107
- end
108
-
109
- describe "manifest:prepare_build_tasks:module_info" do
110
-
111
- include SC::SpecHelpers
112
- include SC::ManifestSpecHelpers
113
-
114
- before do
115
- std_before :builder_tests, :bundle_test
116
-
117
- # most of these tests assume load_debug is turned off like it would be
118
- # in production mode
119
- @target.config.load_debug = false
120
- @target.config.theme = nil
121
- @target.config.timestamp_urls = false
122
-
123
- # run std rules to run manifest. Then verify preconditions to make sure
124
- # no other changes to the build system effect the ability of these tests
125
- # to run properly.
126
- @manifest.build!
127
- end
128
-
129
- it "should create a module_info.js for a deferred_modules target" do
130
- # run_task
131
- # entries = @manifest.entries.select { |e| e.entry_type == :javascript }
132
- # entries.each do |entry|
133
- # %w(filename url build_path).each do |key|
134
- # entry[key].should =~ /source\//
135
- # end
136
- # end
137
- end
138
-
139
- describe "app target" do
140
-
141
- before do
142
- std_before :builder_tests, :bundle_test
143
-
144
- # most of these tests assume load_debug is turned off like it would be
145
- # in production mode
146
- @target.config.load_debug = false
147
- @target.config.theme = nil
148
- @target.config.use_packed = false
149
- @target.config.timestamp_urls = false
150
-
151
- # make sure all targets have the same settings...
152
- @target.expand_required_targets.each do |t|
153
- t.config.timestamp_urls = false
154
- end
155
-
156
- # make sure all targets have the same settings...
157
- @target.modules.each do |t|
158
- t.config.timestamp_urls = false
159
- end
160
-
161
- # run std rules to run manifest. Then verify preconditions to make sure
162
- # no other changes to the build system effect the ability of these tests
163
- # to run properly.
164
- @manifest.build!
165
- end
166
-
167
- def run_task
168
- @manifest.prepare!
169
- super('manifest:prepare_build_tasks:javascript')
170
- end
171
-
172
- it "should run manifest:prepare_build_tasks:setup as prereq" do
173
- should_run('manifest:prepare_build_tasks:setup') { run_task }
174
- end
175
-
176
- it "should create a bundle_info.js entry for its dynamic target" do
177
- @manifest.entry_for('bundle_info.js').should_not be_nil
178
- end
179
-
180
- end
181
-
182
- describe "static framework target" do
183
-
184
- before do
185
- std_before :builder_tests, :req_target_1
186
-
187
- # most of these tests assume load_debug is turned off like it would be
188
- # in production mode
189
- @target.config.load_debug = false
190
- @target.config.theme = nil
191
- @target.config.timestamp_urls = false
192
-
193
- # run std rules to run manifest. Then verify preconditions to make sure
194
- # no other changes to the build system effect the ability of these tests
195
- # to run properly.
196
- @manifest.build!
197
- end
198
-
199
- def run_task
200
- @manifest.prepare!
201
- super('manifest:prepare_build_tasks:javascript')
202
- end
203
-
204
- it "should run manifest:prepare_build_tasks:setup as prereq" do
205
- should_run('manifest:prepare_build_tasks:setup') { run_task }
206
- end
207
-
208
- it "should not require a dynamic framework" do
209
- (req = @target.modules).size.should == 0
210
- end
211
-
212
- it "should not create a bundle_info.js entry" do
213
- @manifest.entry_for('bundle_info.js').should be_nil
214
- end
215
-
216
- end
217
-
218
- describe "dynamic framework target" do
219
-
220
- before do
221
- std_before :builder_tests, :req_target_2
222
-
223
- # most of these tests assume load_debug is turned off like it would be
224
- # in production mode
225
- @target.config.load_debug = false
226
- @target.config.theme = nil
227
- @target.config.timestamp_urls = false
228
-
229
- # run std rules to run manifest. Then verify preconditions to make sure
230
- # no other changes to the build system effect the ability of these tests
231
- # to run properly.
232
- @manifest.build!
233
- end
234
-
235
- def run_task
236
- @manifest.prepare!
237
- super('manifest:prepare_build_tasks:javascript')
238
- end
239
-
240
- it "should run manifest:prepare_build_tasks:setup as prereq" do
241
- should_run('manifest:prepare_build_tasks:setup') { run_task }
242
- end
243
-
244
- it "should require its own dynamic framework" do
245
- (req = @target.modules).size.should == 1
246
- end
247
-
248
- it "should create a bundle_info.js entry" do
249
- @manifest.entry_for('bundle_info.js').should_not be_nil
250
- end
251
-
252
- end
253
-
254
- end
@@ -1 +0,0 @@
1
- alert('bundle_test');
@@ -1,295 +0,0 @@
1
- require "lib/builders/spec_helper"
2
-
3
- describe 'SC::Builder::BundleLoaded' do
4
-
5
- include SC::SpecHelpers
6
- include SC::BuilderSpecHelper
7
-
8
- describe "app target" do
9
-
10
- before do
11
- std_before :bundle_test
12
-
13
- # most of these tests assume load_debug is turned off like it would be
14
- # in production mode
15
- @target.config.load_debug = false
16
- @target.config.theme = nil
17
- @target.config.timestamp_urls = false
18
-
19
- # run std rules to run manifest. Then verify preconditions to make sure
20
- # no other changes to the build system effect the ability of these tests
21
- # to run properly.
22
- @manifest.build!
23
- end
24
-
25
- after do
26
- std_after
27
- end
28
-
29
- it "VERIFY PRECONDITIONS" do
30
- @target.should be_loadable
31
- end
32
-
33
- it "should require one static target" do
34
- (req = @target.required_targets).size.should == 1
35
- req.first.target_name.should == :'/req_target_1'
36
- end
37
-
38
- it "should require one dynamic target" do
39
- (req = @target.modules).size.should == 1
40
- req.first.target_name.should == :'/req_target_2'
41
- end
42
-
43
- it "should not create a bundle_loaded.js entry for an app" do
44
- @manifest.entry_for('bundle_loaded.js').should be_nil
45
- end
46
-
47
- end
48
-
49
- describe "static framework target" do
50
-
51
- before do
52
- std_before :req_target_1
53
-
54
- # most of these tests assume load_debug is turned off like it would be
55
- # in production mode
56
- @target.config.load_debug = false
57
- @target.config.theme = nil
58
- @target.config.timestamp_urls = false
59
-
60
- # run std rules to run manifest. Then verify preconditions to make sure
61
- # no other changes to the build system effect the ability of these tests
62
- # to run properly.
63
- @manifest.build!
64
- end
65
-
66
- after do
67
- std_after
68
- end
69
-
70
- it "VERIFY PRECONDITIONS" do
71
- @target.should_not be_loadable
72
- end
73
-
74
- it "should create a bundle_loaded.js entry" do
75
- @manifest.entry_for('bundle_loaded.js').should_not be_nil
76
- end
77
-
78
- end
79
-
80
- describe "dynamic framework target" do
81
-
82
- before do
83
- std_before :req_target_2
84
-
85
- # most of these tests assume load_debug is turned off like it would be
86
- # in production mode
87
- @target.config.load_debug = false
88
- @target.config.theme = nil
89
- @target.config.timestamp_urls = false
90
-
91
- # run std rules to run manifest. Then verify preconditions to make sure
92
- # no other changes to the build system effect the ability of these tests
93
- # to run properly.
94
- @manifest.build!
95
- end
96
-
97
- after do
98
- std_after
99
- end
100
-
101
- it "VERIFY PRECONDITIONS" do
102
- @target.should_not be_loadable
103
- end
104
-
105
- it "should create a bundle_loaded.js entry" do
106
- @manifest.entry_for('bundle_loaded.js').should_not be_nil
107
- end
108
-
109
- end
110
-
111
- end
112
-
113
- describe 'SC::Builder::BundleInfo' do
114
-
115
- include SC::SpecHelpers
116
- include SC::BuilderSpecHelper
117
-
118
- describe "app target" do
119
-
120
- before do
121
- std_before :bundle_test
122
-
123
- # most of these tests assume load_debug is turned off like it would be
124
- # in production mode
125
- @target.config.load_debug = false
126
- @target.config.theme = nil
127
- @target.config.use_packed = false
128
- @target.config.timestamp_urls = false
129
-
130
- # make sure all targets have the same settings...
131
- @target.expand_required_targets.each do |t|
132
- t.config.timestamp_urls = false
133
- end
134
-
135
- # make sure all targets have the same settings...
136
- @target.modules.each do |t|
137
- t.config.timestamp_urls = false
138
- end
139
-
140
- # run std rules to run manifest. Then verify preconditions to make sure
141
- # no other changes to the build system effect the ability of these tests
142
- # to run properly.
143
- @manifest.build!
144
- end
145
-
146
- after do
147
- std_after
148
- end
149
-
150
- it "VERIFY PRECONDITIONS" do
151
- @target.should be_loadable
152
- end
153
-
154
- it "should require one static target" do
155
- (req = @target.required_targets).size.should == 1
156
- req.first.target_name.should == :'/req_target_1'
157
- end
158
-
159
- it "should require one dynamic target" do
160
- (req = @target.modules).size.should == 1
161
- req.first.target_name.should == :'/req_target_2'
162
- end
163
-
164
- it "should create a bundle_info.js entry for its dynamic target" do
165
- @manifest.entry_for('bundle_info.js').should_not be_nil
166
- end
167
-
168
- describe "bundle_info.js" do
169
-
170
- it "should have SC::Target#bundle_info return the correct requires, css_urls and js_urls" do
171
- dynamic_target = @target.modules[0]
172
- dynamic_target.should_not be_nil
173
-
174
- bundle_info = dynamic_target.bundle_info({ :variation => @manifest.variation })
175
- bundle_info.should_not be_nil
176
-
177
- (req = bundle_info[:requires]).size.should == 1
178
- req.first.target_name.should == :'/req_target_1'
179
-
180
- (req = bundle_info[:css_urls]).size.should == 1
181
- req.first.should == '/static/req_target_2/en/current/stylesheet.css'
182
-
183
- (req = bundle_info[:js_urls]).size.should == 4
184
- req[0].should == '/static/req_target_2/en/current/bundle_info.js'
185
- req[1].should == '/static/req_target_2/en/current/source/javascript.js'
186
- req[2].should == '/static/req_target_2/en/current/source/req_js_2.js'
187
- req[3].should == '/static/req_target_2/en/current/bundle_loaded.js'
188
- end
189
-
190
- end
191
-
192
- end
193
-
194
- describe "static framework target" do
195
-
196
- before do
197
- std_before :req_target_1
198
-
199
- # most of these tests assume load_debug is turned off like it would be
200
- # in production mode
201
- @target.config.load_debug = false
202
- @target.config.theme = nil
203
- @target.config.timestamp_urls = false
204
-
205
- # run std rules to run manifest. Then verify preconditions to make sure
206
- # no other changes to the build system effect the ability of these tests
207
- # to run properly.
208
- @manifest.build!
209
- end
210
-
211
- after do
212
- std_after
213
- end
214
-
215
- it "VERIFY PRECONDITIONS" do
216
- @target.should_not be_loadable
217
- end
218
-
219
- it "should not require a dynamic framework" do
220
- (req = @target.modules).size.should == 0
221
- end
222
-
223
- it "should not create a bundle_info.js entry" do
224
- @manifest.entry_for('bundle_info.js').should be_nil
225
- end
226
-
227
- end
228
-
229
- describe "dynamic framework target" do
230
-
231
- before do
232
- std_before :req_target_2
233
-
234
- # most of these tests assume load_debug is turned off like it would be
235
- # in production mode
236
- @target.config.load_debug = false
237
- @target.config.theme = nil
238
- @target.config.timestamp_urls = false
239
-
240
- # make sure all targets have the same settings...
241
- @target.expand_required_targets.each do |t|
242
- t.config.timestamp_urls = false
243
- end
244
-
245
- # make sure all targets have the same settings...
246
- @target.modules.each do |t|
247
- t.config.timestamp_urls = false
248
- end
249
-
250
- # run std rules to run manifest. Then verify preconditions to make sure
251
- # no other changes to the build system effect the ability of these tests
252
- # to run properly.
253
- @manifest.build!
254
- end
255
-
256
- after do
257
- std_after
258
- end
259
-
260
- it "VERIFY PRECONDITIONS" do
261
- @target.should_not be_loadable
262
- end
263
-
264
- it "should require its own dynamic framework" do
265
- (req = @target.modules).size.should == 1
266
- end
267
-
268
- it "should create a bundle_info.js entry" do
269
- @manifest.entry_for('bundle_info.js').should_not be_nil
270
- end
271
-
272
- describe "bundle_info.js" do
273
-
274
- it "should have SC::Target#bundle_info return the correct requires, css_urls and js_urls" do
275
- dynamic_target = @target.modules[0]
276
- dynamic_target.should_not be_nil
277
-
278
- bundle_info = dynamic_target.bundle_info({ :variation => @manifest.variation })
279
- bundle_info.should_not be_nil
280
-
281
- (req = bundle_info[:requires]).size.should == 0
282
-
283
- (req = bundle_info[:css_urls]).size.should == 1
284
- req.first.should == '/static/dynamic_req_target_1/en/current/stylesheet.css'
285
-
286
- (req = bundle_info[:js_urls]).size.should == 2
287
- req[0].should == '/static/dynamic_req_target_1/en/current/source/dynamic_req_js_1.js'
288
- req[1].should == '/static/dynamic_req_target_1/en/current/bundle_loaded.js'
289
- end
290
-
291
- end
292
-
293
- end
294
-
295
- end