sproutcore 1.5.0.rc.1 → 1.5.0.rc.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (193) hide show
  1. data/CHANGELOG +4 -0
  2. data/VERSION.yml +1 -1
  3. data/lib/frameworks/sproutcore/Buildfile +9 -4
  4. data/lib/frameworks/sproutcore/README.md +1 -0
  5. data/lib/frameworks/sproutcore/design/{TestRunner_Design.gaffle → TestRunner_Design.graffle}/QuickLook/Preview.pdf +0 -0
  6. data/lib/frameworks/sproutcore/design/{TestRunner_Design.gaffle → TestRunner_Design.graffle}/QuickLook/Thumbnail.tiff +0 -0
  7. data/lib/frameworks/sproutcore/design/{TestRunner_Design.gaffle → TestRunner_Design.graffle}/data.plist +0 -0
  8. data/lib/frameworks/sproutcore/design/{TestRunner_Design.gaffle → TestRunner_Design.graffle}/image10.png +0 -0
  9. data/lib/frameworks/sproutcore/design/{TestRunner_Design.gaffle → TestRunner_Design.graffle}/image11.png +0 -0
  10. data/lib/frameworks/sproutcore/design/{TestRunner_Design.gaffle → TestRunner_Design.graffle}/image13.png +0 -0
  11. data/lib/frameworks/sproutcore/design/{TestRunner_Design.gaffle → TestRunner_Design.graffle}/image15.png +0 -0
  12. data/lib/frameworks/sproutcore/design/{TestRunner_Design.gaffle → TestRunner_Design.graffle}/image16.png +0 -0
  13. data/lib/frameworks/sproutcore/design/{TestRunner_Design.gaffle → TestRunner_Design.graffle}/image17.png +0 -0
  14. data/lib/frameworks/sproutcore/design/{TestRunner_Design.gaffle → TestRunner_Design.graffle}/image18.png +0 -0
  15. data/lib/frameworks/sproutcore/design/{TestRunner_Design.gaffle → TestRunner_Design.graffle}/image19.png +0 -0
  16. data/lib/frameworks/sproutcore/design/{TestRunner_Design.gaffle → TestRunner_Design.graffle}/image22.tiff +0 -0
  17. data/lib/frameworks/sproutcore/design/{TestRunner_Design.gaffle → TestRunner_Design.graffle}/image23.png +0 -0
  18. data/lib/frameworks/sproutcore/design/{TestRunner_Design.gaffle → TestRunner_Design.graffle}/image24.png +0 -0
  19. data/lib/frameworks/sproutcore/design/{TestRunner_Design.gaffle → TestRunner_Design.graffle}/image25.png +0 -0
  20. data/lib/frameworks/sproutcore/design/{TestRunner_Design.gaffle → TestRunner_Design.graffle}/image30.png +0 -0
  21. data/lib/frameworks/sproutcore/design/{TestRunner_Design.gaffle → TestRunner_Design.graffle}/image31.png +0 -0
  22. data/lib/frameworks/sproutcore/design/{TestRunner_Design.gaffle → TestRunner_Design.graffle}/image8.png +0 -0
  23. data/lib/frameworks/sproutcore/design/{TestRunner_Design.gaffle → TestRunner_Design.graffle}/image9.png +0 -0
  24. data/lib/frameworks/sproutcore/frameworks/animation/core.js +23 -25
  25. data/lib/frameworks/sproutcore/frameworks/bootstrap/system/browser.js +160 -0
  26. data/lib/frameworks/sproutcore/frameworks/core_foundation/controllers/array.js +73 -82
  27. data/lib/frameworks/sproutcore/frameworks/core_foundation/core.js +1 -3
  28. data/lib/frameworks/sproutcore/frameworks/{handlebars/extensions → core_foundation/ext/handlebars}/bind.js +110 -7
  29. data/lib/frameworks/sproutcore/frameworks/{handlebars/extensions → core_foundation/ext/handlebars}/collection.js +10 -7
  30. data/lib/frameworks/sproutcore/frameworks/{handlebars/extensions → core_foundation/ext/handlebars}/localization.js +1 -1
  31. data/lib/frameworks/sproutcore/frameworks/{handlebars/extensions → core_foundation/ext/handlebars}/view.js +4 -2
  32. data/lib/frameworks/sproutcore/frameworks/{handlebars/extensions.js → core_foundation/ext/handlebars.js} +0 -57
  33. data/lib/frameworks/sproutcore/frameworks/core_foundation/ext/object.js +1 -3
  34. data/lib/frameworks/sproutcore/frameworks/core_foundation/mixins/template_helpers/text_field_support.js +11 -0
  35. data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/main.js +1 -3
  36. data/lib/frameworks/sproutcore/frameworks/core_foundation/panes/pane.js +2 -4
  37. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/application.js +14 -16
  38. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/builder.js +29 -37
  39. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/datetime.js +0 -0
  40. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/event.js +71 -19
  41. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/locale.js +3 -7
  42. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/page.js +5 -7
  43. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/selection_set.js +1 -3
  44. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/sparse_array.js +4 -0
  45. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/timer.js +21 -27
  46. data/lib/frameworks/sproutcore/frameworks/core_foundation/system/utils.js +3 -5
  47. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controllers/array/array_case.js +3 -3
  48. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/controllers/object/single_enumerable_case.js +1 -1
  49. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/system/sparse_array.js +1 -1
  50. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/template/handlebars.js +93 -1
  51. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/clippingFrame.js +1 -1
  52. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/convertLayouts.js +13 -11
  53. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/layer.js +2 -6
  54. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/layoutStyle.js +4 -4
  55. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/theme.js +2 -0
  56. data/lib/frameworks/sproutcore/frameworks/core_foundation/tests/views/view/view.js +4 -4
  57. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/template.js +6 -2
  58. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/template_collection.js +87 -32
  59. data/lib/frameworks/sproutcore/frameworks/core_foundation/views/view/layout.js +21 -25
  60. data/lib/frameworks/sproutcore/frameworks/datastore/data_sources/cascade.js +15 -19
  61. data/lib/frameworks/sproutcore/frameworks/datastore/data_sources/data_source.js +114 -167
  62. data/lib/frameworks/sproutcore/frameworks/datastore/data_sources/fixtures.js +4 -4
  63. data/lib/frameworks/sproutcore/frameworks/datastore/models/child_attribute.js +4 -6
  64. data/lib/frameworks/sproutcore/frameworks/datastore/models/children_attribute.js +2 -4
  65. data/lib/frameworks/sproutcore/frameworks/datastore/models/fetched_attribute.js +7 -7
  66. data/lib/frameworks/sproutcore/frameworks/datastore/models/many_attribute.js +18 -20
  67. data/lib/frameworks/sproutcore/frameworks/datastore/models/record.js +74 -72
  68. data/lib/frameworks/sproutcore/frameworks/datastore/models/record_attribute.js +36 -29
  69. data/lib/frameworks/sproutcore/frameworks/datastore/models/single_attribute.js +2 -2
  70. data/lib/frameworks/sproutcore/frameworks/datastore/system/child_array.js +97 -78
  71. data/lib/frameworks/sproutcore/frameworks/datastore/system/many_array.js +117 -97
  72. data/lib/frameworks/sproutcore/frameworks/datastore/system/nested_store.js +13 -13
  73. data/lib/frameworks/sproutcore/frameworks/datastore/system/query.js +111 -108
  74. data/lib/frameworks/sproutcore/frameworks/datastore/system/record_array.js +231 -198
  75. data/lib/frameworks/sproutcore/frameworks/datastore/system/store.js +146 -145
  76. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/query/builders.js +21 -21
  77. data/lib/frameworks/sproutcore/frameworks/datastore/tests/system/record_array/flush.js +49 -50
  78. data/lib/frameworks/sproutcore/frameworks/datetime/{system → frameworks/core/system}/datetime.js +122 -171
  79. data/lib/frameworks/sproutcore/frameworks/datetime/{tests → frameworks/core/tests}/system/datetime.js +0 -0
  80. data/lib/frameworks/sproutcore/frameworks/datetime/{resources → frameworks/localized/resources}/strings.js +0 -0
  81. data/lib/frameworks/sproutcore/frameworks/datetime/frameworks/localized/system/datetime.js +91 -0
  82. data/lib/frameworks/sproutcore/frameworks/desktop/core.js +18 -2
  83. data/lib/frameworks/sproutcore/frameworks/desktop/mixins/border.js +23 -16
  84. data/lib/frameworks/sproutcore/frameworks/desktop/mixins/collection_fast_path.js +56 -45
  85. data/lib/frameworks/sproutcore/frameworks/desktop/mixins/collection_group.js +5 -2
  86. data/lib/frameworks/sproutcore/frameworks/desktop/mixins/collection_row_delegate.js +21 -19
  87. data/lib/frameworks/sproutcore/frameworks/desktop/mixins/collection_view_delegate.js +82 -77
  88. data/lib/frameworks/sproutcore/frameworks/desktop/mixins/navigation_builder.js +18 -12
  89. data/lib/frameworks/sproutcore/frameworks/desktop/mixins/scrollable.js +29 -17
  90. data/lib/frameworks/sproutcore/frameworks/desktop/panes/alert.js +148 -107
  91. data/lib/frameworks/sproutcore/frameworks/desktop/panes/menu.js +31 -16
  92. data/lib/frameworks/sproutcore/frameworks/desktop/panes/modal.js +16 -13
  93. data/lib/frameworks/sproutcore/frameworks/desktop/panes/palette.js +38 -17
  94. data/lib/frameworks/sproutcore/frameworks/desktop/panes/panel.js +37 -25
  95. data/lib/frameworks/sproutcore/frameworks/desktop/panes/picker.js +247 -144
  96. data/lib/frameworks/sproutcore/frameworks/desktop/panes/select_button.js +155 -100
  97. data/lib/frameworks/sproutcore/frameworks/desktop/panes/sheet.js +39 -17
  98. data/lib/frameworks/sproutcore/frameworks/desktop/protocols/drag_data_source.js +9 -6
  99. data/lib/frameworks/sproutcore/frameworks/desktop/protocols/drag_source.js +18 -22
  100. data/lib/frameworks/sproutcore/frameworks/desktop/protocols/drop_target.js +27 -17
  101. data/lib/frameworks/sproutcore/frameworks/desktop/system/drag.js +77 -44
  102. data/lib/frameworks/sproutcore/frameworks/desktop/system/undo_manager.js +68 -33
  103. data/lib/frameworks/sproutcore/frameworks/desktop/views/button.js +168 -110
  104. data/lib/frameworks/sproutcore/frameworks/desktop/views/checkbox.js +37 -5
  105. data/lib/frameworks/sproutcore/frameworks/desktop/views/collection.js +187 -123
  106. data/lib/frameworks/sproutcore/frameworks/desktop/views/date_field.js +73 -49
  107. data/lib/frameworks/sproutcore/frameworks/desktop/views/disclosure.js +34 -9
  108. data/lib/frameworks/sproutcore/frameworks/desktop/views/file.js +51 -14
  109. data/lib/frameworks/sproutcore/frameworks/desktop/views/grid.js +38 -8
  110. data/lib/frameworks/sproutcore/frameworks/desktop/views/image_button.js +15 -9
  111. data/lib/frameworks/sproutcore/frameworks/desktop/views/list.js +54 -34
  112. data/lib/frameworks/sproutcore/frameworks/desktop/views/list_item.js +113 -42
  113. data/lib/frameworks/sproutcore/frameworks/desktop/views/master_detail.js +84 -28
  114. data/lib/frameworks/sproutcore/frameworks/desktop/views/menu_item.js +67 -51
  115. data/lib/frameworks/sproutcore/frameworks/desktop/views/menu_scroll.js +122 -35
  116. data/lib/frameworks/sproutcore/frameworks/desktop/views/navigation.js +40 -16
  117. data/lib/frameworks/sproutcore/frameworks/desktop/views/navigation_bar.js +28 -18
  118. data/lib/frameworks/sproutcore/frameworks/desktop/views/popup_button.js +27 -31
  119. data/lib/frameworks/sproutcore/frameworks/desktop/views/progress.js +118 -68
  120. data/lib/frameworks/sproutcore/frameworks/desktop/views/radio.js +117 -61
  121. data/lib/frameworks/sproutcore/frameworks/desktop/views/scene.js +23 -16
  122. data/lib/frameworks/sproutcore/frameworks/desktop/views/scroll.js +241 -77
  123. data/lib/frameworks/sproutcore/frameworks/desktop/views/scroller.js +134 -69
  124. data/lib/frameworks/sproutcore/frameworks/desktop/views/segment.js +107 -25
  125. data/lib/frameworks/sproutcore/frameworks/desktop/views/segmented.js +125 -48
  126. data/lib/frameworks/sproutcore/frameworks/desktop/views/select.js +165 -69
  127. data/lib/frameworks/sproutcore/frameworks/desktop/views/select_field.js +73 -24
  128. data/lib/frameworks/sproutcore/frameworks/desktop/views/separator.js +19 -5
  129. data/lib/frameworks/sproutcore/frameworks/desktop/views/source_list.js +16 -4
  130. data/lib/frameworks/sproutcore/frameworks/desktop/views/source_list_group.js +14 -7
  131. data/lib/frameworks/sproutcore/frameworks/desktop/views/split.js +43 -37
  132. data/lib/frameworks/sproutcore/frameworks/desktop/views/split_divider.js +8 -1
  133. data/lib/frameworks/sproutcore/frameworks/desktop/views/stacked.js +14 -3
  134. data/lib/frameworks/sproutcore/frameworks/desktop/views/static_content.js +16 -2
  135. data/lib/frameworks/sproutcore/frameworks/desktop/views/tab.js +99 -0
  136. data/lib/frameworks/sproutcore/frameworks/desktop/views/thumb.js +13 -1
  137. data/lib/frameworks/sproutcore/frameworks/desktop/views/toolbar.js +58 -8
  138. data/lib/frameworks/sproutcore/frameworks/desktop/views/web.js +34 -18
  139. data/lib/frameworks/sproutcore/frameworks/desktop/views/well.js +25 -9
  140. data/lib/frameworks/sproutcore/frameworks/desktop/views/workspace.js +70 -36
  141. data/lib/frameworks/sproutcore/frameworks/foundation/controllers/tree.js +10 -5
  142. data/lib/frameworks/sproutcore/frameworks/foundation/debug/control_test_pane.js +28 -17
  143. data/lib/frameworks/sproutcore/frameworks/foundation/delegates/inline_text_field.js +41 -43
  144. data/lib/frameworks/sproutcore/frameworks/foundation/gestures/pinch.js +42 -4
  145. data/lib/frameworks/sproutcore/frameworks/foundation/gestures/swipe.js +94 -4
  146. data/lib/frameworks/sproutcore/frameworks/foundation/gestures/tap.js +41 -1
  147. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/auto_mixin.js +2 -0
  148. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/auto_resize.js +18 -9
  149. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/collection_content.js +7 -5
  150. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/content_display.js +7 -8
  151. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/content_value_support.js +34 -24
  152. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/control.js +48 -18
  153. data/lib/frameworks/sproutcore/frameworks/foundation/mixins/inline_text_field.js +1 -0
  154. data/lib/frameworks/sproutcore/frameworks/foundation/system/utils/misc.js +1 -2
  155. data/lib/frameworks/sproutcore/frameworks/foundation/tasks/preload_bundle.js +1 -1
  156. data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_text_field/beginEditing.js +0 -11
  157. data/lib/frameworks/sproutcore/frameworks/foundation/validators/date_time.js +1 -1
  158. data/lib/frameworks/sproutcore/frameworks/foundation/views/text_field.js +8 -0
  159. data/lib/frameworks/sproutcore/frameworks/qunit/README.md +24 -0
  160. data/lib/frameworks/sproutcore/frameworks/qunit/package.json +21 -0
  161. data/lib/frameworks/sproutcore/frameworks/qunit/qunit/qunit.css +215 -0
  162. data/lib/frameworks/sproutcore/frameworks/qunit/qunit/qunit.js +1442 -0
  163. data/lib/frameworks/sproutcore/frameworks/qunit/test/headless.html +24 -0
  164. data/lib/frameworks/sproutcore/frameworks/qunit/test/index.html +18 -0
  165. data/lib/frameworks/sproutcore/frameworks/qunit/test/logs.html +17 -0
  166. data/lib/frameworks/sproutcore/frameworks/qunit/test/logs.js +150 -0
  167. data/lib/frameworks/sproutcore/frameworks/qunit/test/same.js +1421 -0
  168. data/lib/frameworks/sproutcore/frameworks/qunit/test/test.js +314 -0
  169. data/lib/frameworks/sproutcore/frameworks/runtime/core.js +1 -1
  170. data/lib/frameworks/sproutcore/frameworks/runtime/mixins/array.js +369 -60
  171. data/lib/frameworks/sproutcore/frameworks/runtime/mixins/enumerable.js +2 -405
  172. data/lib/frameworks/sproutcore/frameworks/runtime/mixins/observable.js +3 -9
  173. data/lib/frameworks/sproutcore/frameworks/runtime/private/property_chain.js +50 -45
  174. data/lib/frameworks/sproutcore/frameworks/runtime/system/binding.js +20 -1
  175. data/lib/frameworks/sproutcore/frameworks/runtime/system/object.js +0 -9
  176. data/lib/frameworks/sproutcore/frameworks/runtime/tests/core/guidFor.js +1 -1
  177. data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/array.js +36 -14
  178. data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/enumerable/enumerable.js +0 -34
  179. data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/enumerable/enumerable_observers.js +50 -61
  180. data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/observable/observable.js +2 -2
  181. data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/observable/propertyChanges.js +1 -1
  182. data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/observable/registerDependentKeys.js +45 -1
  183. data/lib/frameworks/sproutcore/frameworks/runtime/tests/mixins/propertyChanges.js +1 -1
  184. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/object/bindings.js +5 -0
  185. data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/object/enhance.js +1 -1
  186. data/lib/frameworks/sproutcore/frameworks/testing/core.js +3 -0
  187. data/lib/frameworks/sproutcore/frameworks/testing/system/plan.js +0 -1
  188. data/lib/frameworks/sproutcore/frameworks/testing/system/runner.js +0 -1
  189. data/lib/gen/html_app/templates/apps/@target_name@/@target_name@.js +1 -1
  190. data/vendor/chance/lib/chance/instance.rb +8 -6
  191. metadata +41 -31
  192. data/lib/frameworks/sproutcore/frameworks/testing/jquery.js +0 -3559
  193. data/lib/frameworks/sproutcore/frameworks/testing/qunit.js +0 -827
@@ -50,7 +50,7 @@ test("numbers", function() {
50
50
  nanGuid( a );
51
51
  });
52
52
 
53
- test("numbers", function() {
53
+ test("booleans", function() {
54
54
  var a = true, aprime = true, b = false;
55
55
 
56
56
  sameGuid( a, a, "same booleans always yields same guid" );
@@ -9,7 +9,7 @@
9
9
 
10
10
  // ..........................................................
11
11
  // BUILT-IN ARRAY
12
- //
12
+ //
13
13
 
14
14
  sc_require('debug/test_suites/array');
15
15
 
@@ -17,41 +17,63 @@ SC.ArraySuite.generate("built-in Array");
17
17
 
18
18
  // ..........................................................
19
19
  // DUMMY ARRAY (BASIC FAKE IMPLEMENTATION)
20
- //
20
+ //
21
21
 
22
- // Test the SproutCore Array interface on a custom object.
22
+ // Test that illustrates how to build a SproutCore Array-like
23
+ // that correctly participates in KVO.
23
24
  var DummyArray = SC.Object.extend(SC.Array, {
24
-
25
+
26
+ // The SC.Array Interface requires a length property
25
27
  length: 0,
26
-
28
+
27
29
  content: null,
28
-
30
+
31
+ // The SC.Array mixin sends all mutations through replace.
32
+ // As a result, we can implement KVO notification in
33
+ // replace.
29
34
  replace: function(idx, amt, objects) {
30
- if (!this.content) this.content = [] ;
35
+ if (!this.content) { this.content = [] ; }
36
+
37
+ var len = objects ? objects.get('length') : 0;
31
38
 
39
+ // SC.Array implementations must call arrayContentWillChange
40
+ // before making mutations. This allows observers to perform
41
+ // operations based on the state of the Array before the
42
+ // change, such as reflecting removals.
43
+ this.arrayContentWillChange(idx, amt, len);
32
44
  this.beginPropertyChanges() ;
45
+
46
+ // Mutate the underlying Array
33
47
  this.content.replace(idx,amt,objects) ;
34
48
 
49
+ // Update the length property
35
50
  this.set('length', this.content.length) ;
36
51
 
37
- // figure out the range that changed. If amt + objects are the same, use
38
- // amt. Otherwise use total length.
39
- var len = objects ? objects.get('length') : 0;
52
+ // Call the general-purpose enumerableContentDidChange
53
+ // Enumerable method.
40
54
  this.enumerableContentDidChange(idx, amt, len - amt) ;
41
55
  this.endPropertyChanges() ;
56
+
57
+ // SC.Array implementations must call arrayContentDidChange
58
+ // after making mutations. This allows observers to perform
59
+ // operations based on the mutation. For instance, a listener
60
+ // might want to reflect additions onto itself.
61
+ this.arrayContentDidChange(idx, amt, len);
42
62
  },
43
-
63
+
64
+ // SC.Arrays must implement objectAt, which returns an object
65
+ // for a given index.
44
66
  objectAt: function(idx) {
45
- if (!this.content) this.content = [] ;
67
+ if (!this.content) { this.content = [] ; }
46
68
  return this.content[idx] ;
47
69
  }
48
-
70
+
49
71
  });
50
72
 
51
73
  SC.ArraySuite.generate("DummyArray", {
52
74
  newObject: function(expected) {
53
75
  if (!expected || typeof expected === SC.T_NUMBER) {
54
- expected = this.expected(expected);
76
+ expected = this.expected(expected);
55
77
  }
56
78
  return DummyArray.create({ content: expected, length: expected.length }) ;
57
79
  }
@@ -520,40 +520,6 @@ test("should trigger observer of reduced prop when array changes once property r
520
520
  }
521
521
  });
522
522
 
523
- test("should trigger observer of reduced prop when array changes once property retrieved once", function() {
524
- var src, ary2 = enumerables ;
525
- for (var idx2=0, len2=ary2.length; idx2<len2; idx2++) {
526
- src = ary2[idx2] ;
527
- // get the property...this will install the reducer property...
528
- src.get("@max(balance)") ;
529
-
530
- // install observer
531
- var observedValue = null ;
532
- src.addObserver("@max(balance)", function() {
533
- observedValue = src.get("@max(balance)");
534
- }) ;
535
-
536
- //src.addProbe('[]') ;
537
- //src.addProbe('@max(balance)');
538
-
539
- // add record to array
540
- src.pushObject({
541
- first: "John",
542
- gender: "male",
543
- californian: NO,
544
- ready: YES,
545
- visited: "Paris",
546
- balance: 5
547
- }) ;
548
-
549
- //SC.NotificationQueue.flush() ; // force observers to trigger
550
-
551
- // observed value should now be set because the reduced property observer
552
- // was triggered when we changed the array contents.
553
- equals(5, observedValue, "observedValue") ;
554
- }
555
- });
556
-
557
523
 
558
524
  test("should trigger observer of reduced prop when array changes - even if you never retrieved the property before", function() {
559
525
  var src, ary2 = enumerables ;
@@ -5,88 +5,77 @@
5
5
  // License: Licensed under MIT license (see license.js)
6
6
  // ==========================================================================
7
7
  (function() {
8
- var array, callCount, added, removed, changeIndex;
8
+ var observerObject, array;
9
+
10
+ var willChangeStart, willChangeAdded, willChangeRemoved, willChangeSource, willChangeCallCount;
11
+ var didChangeStart, didChangeAdded, didChangeRemoved, didChangeSource, didChangeCallCount;
12
+
9
13
  module("Enumerable Observers", {
10
14
  setup: function() {
11
15
  array = [1, 2, 3];
12
16
 
13
- array.addEnumerableObserver(function(addedObjects, removedObjects, index, source) {
14
- callCount = callCount ? callCount++ : 1;
15
- added = addedObjects;
16
- removed = removedObjects;
17
- changeIndex = index;
17
+ observerObject = SC.Object.create({
18
+ arrayContentWillChange: function(start, removedCount, addedCount, source) {
19
+ willChangeStart = start;
20
+ willChangeAdded = addedCount;
21
+ willChangeRemoved = removedCount;
22
+ willChangeSource = source;
23
+ willChangeCallCount = willChangeCallCount ? willChangeCallCount++ : 1;
24
+ },
25
+
26
+ arrayContentDidChange: function(start, removedCount, addedCount, source) {
27
+ didChangeStart = start;
28
+ didChangeAdded = addedCount;
29
+ didChangeRemoved = removedCount;
30
+ didChangeSource = source;
31
+ didChangeCallCount = didChangeCallCount ? didChangeCallCount++ : 1;
32
+ }
33
+ });
34
+
35
+ array.addArrayObservers({
36
+ target: observerObject,
37
+ willChange: 'arrayContentWillChange',
38
+ didChange: 'arrayContentDidChange'
18
39
  });
19
40
  }
20
41
  });
21
42
 
22
- var shouldAddAndRemove = function(add, remove) {
23
- if (!add) { add = []; }
24
- if (!remove) { remove = []; }
25
-
26
- var fmt = function(a,b) {
27
- var ret = '[';
28
- ret += a.join(', ');
29
- ret += '] equals [';
30
- ret += b.join(', ') + ']';
31
-
32
- return ret;
33
- };
34
-
35
- ok(add.isEqual(added), fmt(add, added));
36
- ok(remove.isEqual(removed), fmt(remove, removed));
37
- };
38
-
39
43
  test("should be called when an object is added to an enumerable", function() {
40
44
  array.pushObject(4);
41
- shouldAddAndRemove([4], []);
42
- });
43
45
 
44
- test("should not be called when the observer is removed", function() {
45
- var called;
46
- var observer = function() {
47
- called = true;
48
- };
46
+ equals(willChangeCallCount, 1, "calls arrayContentWillChange once");
47
+ equals(didChangeCallCount, 1, "calls arrayContentDidChange once");
49
48
 
50
- array.addEnumerableObserver(observer);
49
+ equals(didChangeSource.objectAt(willChangeStart), 4);
50
+ equals(didChangeAdded, 1, "specifies one object added");
51
+ equals(didChangeRemoved, 0, "specifies no objects removed");
52
+ });
51
53
 
54
+ test("should not be called when the observer is removed", function() {
52
55
  array.pushObject(4);
53
- ok(called, "precond - observer fires when added");
54
- called = false;
56
+ equals(didChangeCallCount, 1, "precond - observer fires when added");
57
+ didChangeCallCount = 0;
55
58
 
56
- array.removeEnumerableObserver(observer);
59
+ array.removeArrayObservers({
60
+ target: observerObject,
61
+ willChange: 'arrayContentWillChange',
62
+ didChange: 'arrayContentDidChange'
63
+ });
57
64
  array.pushObject(5);
58
- ok(!called, "observer does not fire after being removed");
65
+ equals(didChangeCallCount, 0, "observer does not fire after being removed");
59
66
  });
60
67
 
61
68
  test("should include both added and removed objects", function() {
62
69
  array.replace(1, 1, [6, 7, 8]);
63
70
 
64
- shouldAddAndRemove([6, 7, 8], [2]);
65
- equals(changeIndex, 1, "passes correct index of change");
66
- });
67
-
68
- test("should include enumerable as fourth parameter", function() {
69
- var testArray = ["John", "Paul", "Peter", "George"];
70
-
71
- testArray.addEnumerableObserver(function(added, removed, index, source) {
72
- equals(testArray, source, "passes correct enumerable as source parameter");
73
- });
74
-
75
- testArray.replace(2, 1, "Ringo");
76
- });
77
-
78
- test("should take target and action as callback", function() {
79
- var testArray = ["Davy", "Micky", "Peter"];
80
- var callbackCalled = false;
81
- var boyBandController = SC.Object.create({
82
- boyBandDidChange: function(added, removed, index, source, context) {
83
- callbackCalled = true;
84
- equals(context, "foo", "passes optional context parameter");
85
- }
86
- });
71
+ equals(willChangeStart, 1);
72
+ equals(willChangeRemoved, 1);
73
+ equals(willChangeAdded, 3);
74
+ equals(willChangeSource, array);
87
75
 
88
- testArray.addEnumerableObserver(boyBandController, "boyBandDidChange", "foo");
89
- testArray.pushObject("Michael");
90
- ok(callbackCalled, "calls callback on correct object");
76
+ equals(didChangeStart, 1);
77
+ equals(didChangeRemoved, 1);
78
+ equals(didChangeAdded, 3);
79
+ equals(didChangeSource, array);
91
80
  });
92
81
  })();
@@ -150,7 +150,7 @@ test("should return a property at a given path relative to the window", function
150
150
  try {
151
151
  equals(SC.getPath('Foo.Bar.Baz'), "blargh");
152
152
  } finally {
153
- delete window.Foo;
153
+ window.Foo = undefined;
154
154
  }
155
155
  });
156
156
 
@@ -174,7 +174,7 @@ test("should return a property at a given path relative to the window - JavaScri
174
174
  try {
175
175
  equals(SC.getPath('Foo.Bar.Baz'), "blargh");
176
176
  } finally {
177
- delete window.Foo;
177
+ window.Foo = undefined;
178
178
  }
179
179
  });
180
180
 
@@ -68,7 +68,7 @@ test("should increment the indicator before begining the changes to the object",
68
68
  equals(ObjectA.beginPropertyChanges()._kvo_changeLevel, 1) ;
69
69
  });
70
70
 
71
- test("should increment the indicator before begining the changes to the object", function() {
71
+ test("should decrement the indicator after ending the changes to the object", function() {
72
72
  equals(ObjectA.endPropertyChanges()._kvo_changeLevel, 0) ;
73
73
  });
74
74
 
@@ -5,7 +5,7 @@
5
5
  // License: Licensed under MIT license (see license.js)
6
6
  // ==========================================================================
7
7
 
8
- /*globals module test ok equals same */
8
+ /*globals module test ok equals same people */
9
9
 
10
10
  var object ;
11
11
 
@@ -109,3 +109,47 @@ test("should invalidate computed property once per changed key", function() {
109
109
  equals(setCalls, 1, "calls set once");
110
110
  equals(getCalls, 3, "calls get three times");
111
111
  });
112
+
113
+ test("should invalidate key when properties higher up in the chain change", function() {
114
+ var notified = 0;
115
+
116
+ var obj = SC.Object.create({
117
+ contact: null,
118
+
119
+ fullName: function(key, value) {
120
+ return [this.getPath('contact.firstName'), this.getPath('contact.lastName')].join(' ');
121
+ }.property('contact.firstName', 'contact.lastName').cacheable(),
122
+
123
+ fullNameDidChange: function() {
124
+ notified++;
125
+ }.observes('fullName')
126
+ });
127
+
128
+ var johnDoe = SC.Object.create({ firstName: 'John', lastName: 'Doe' });
129
+ var janeDoe = SC.Object.create({ firstName: 'Jane', lastName: 'Doe' });
130
+
131
+ equals(notified, 0, 'should start empty');
132
+ SC.run(function() { obj.set('contact', johnDoe); });
133
+ equals(notified, 1, 'should notify once after set content=johnDoe');
134
+ equals(obj.get('fullName'), 'John Doe', 'should get proper name');
135
+
136
+ notified = 0;
137
+ SC.run(function() { johnDoe.set('firstName', 'JOHNNY'); });
138
+ equals(notified, 1, 'should notify again after set firstName=JOHNNY');
139
+ equals(obj.get('fullName'), 'JOHNNY Doe', 'should get proper name');
140
+
141
+ notified = 0;
142
+ SC.run(function() { obj.set('contact', janeDoe); });
143
+ equals(notified, 1, 'should notify again after set content=janeDoe');
144
+ equals(obj.get('fullName'), 'Jane Doe', 'should get proper name');
145
+
146
+ notified = 0;
147
+ SC.run(function() { johnDoe.set('firstName', 'JON'); });
148
+ equals(notified, 0, 'should NOT notify again after set johnDoe.firstName=JON (johnDoe is not current contact)');
149
+ equals(obj.get('fullName'), 'Jane Doe', 'should get proper name while janeDoe is current');
150
+
151
+ notified = 0;
152
+ SC.run(function() { janeDoe.set('firstName', 'Janna'); });
153
+ equals(notified, 1, 'should notify again after set janeDoe.firstName=Janna');
154
+ equals(obj.get('fullName'), 'Janna Doe', 'should get proper name after firstname=Janna');
155
+ });
@@ -54,7 +54,7 @@ test("should increment the indicator before begining the changes to the object",
54
54
  equals(ObjectA.beginPropertyChanges()._kvo_changeLevel, 1) ;
55
55
  });
56
56
 
57
- test("should increment the indicator before begining the changes to the object", function() {
57
+ test("should decrement the indicator after ending the changes to the object", function() {
58
58
  equals(ObjectA.endPropertyChanges()._kvo_changeLevel, 0) ;
59
59
  });
60
60
 
@@ -103,6 +103,10 @@ test("bind(*extraObject.foo) should create locally chained binding", function()
103
103
  equals("extraObjectValue", testObject.get("foo"), "testObject.foo") ;
104
104
  });
105
105
 
106
+
107
+ test("bind(*extraObject.foo) should be disconnectable");
108
+ // The following contains no test
109
+ /*
106
110
  test("bind(*extraObject.foo) should be disconnectable", function() {
107
111
  var binding = testObject.bind("foo", "*extraObject.foo");
108
112
  SC.Binding.flushPendingChanges() ; // actually sets up up the binding
@@ -110,6 +114,7 @@ test("bind(*extraObject.foo) should be disconnectable", function() {
110
114
  binding.disconnect();
111
115
  SC.Binding.flushPendingChanges() ;
112
116
  });
117
+ */
113
118
 
114
119
  module("fooBinding method", {
115
120
 
@@ -91,7 +91,7 @@ test("calling sc_super inside a reopened class", function() {
91
91
  equals(obj.loudly("foo"), "OHAI: ZOMG HAHA FOO!");
92
92
  });
93
93
 
94
- test("calling sc_super inside a reopened class", function() {
94
+ test("calling sc_super inside a reopened class, reverse", function() {
95
95
  var Klass = SC.Object.extend();
96
96
 
97
97
  var object = Klass.create({
@@ -13,6 +13,9 @@ var require = require || function sc_require() {};
13
13
  var sc_require = sc_require || require;
14
14
  var sc_resource = sc_resource || function sc_resource() {};
15
15
 
16
+ // map used to exist, this is here for backwards compatibility
17
+ var Q$ = jQuery;
18
+
16
19
  /** @namespace
17
20
 
18
21
  CoreTest is the unit testing library for SproutCore. It includes a test
@@ -7,7 +7,6 @@
7
7
 
8
8
  /*globals CoreTest Q$ */
9
9
 
10
- sc_require('jquery');
11
10
  var QUNIT_BREAK_ON_TEST_FAIL = false;
12
11
 
13
12
  /** @class
@@ -7,7 +7,6 @@
7
7
 
8
8
  /*globals CoreTest Q$ */
9
9
 
10
- sc_require('jquery');
11
10
  sc_require('system/plan');
12
11
 
13
12
  /** @static
@@ -6,7 +6,7 @@
6
6
 
7
7
  <%= namespace %> = SC.Application.create();
8
8
 
9
- jQuery(document).ready(function() {
9
+ SC.ready(function() {
10
10
  <%= namespace %>.mainPane = SC.TemplatePane.append({
11
11
  layerId: '<%= target_name %>',
12
12
  templateName: '<%= target_name %>'
@@ -10,6 +10,8 @@ require 'chance/instance/spriting'
10
10
  require 'chance/instance/data_url'
11
11
  require 'chance/instance/javascript'
12
12
 
13
+ require 'digest/md5'
14
+
13
15
 
14
16
  Compass.discover_extensions!
15
17
  Compass.configure_sass_plugin!
@@ -305,12 +307,12 @@ module Chance
305
307
  parser.parse
306
308
  file[:parsed_css] = parser.css
307
309
 
308
- tmp_path = File.join("./tmp/chance/", file[:path])
309
-
310
- # SCSS requires the file names to end with ".scss", but we may
311
- # already be getting files named *.scss. So, only add the extension
312
- # if it is not already there.
313
- tmp_path += ".scss" unless tmp_path.end_with? ".scss"
310
+ # We use an md5 hash here because on Windows, the full path includes the
311
+ # drive name. Since a colon is not valid in a file name, we need to remove
312
+ # it. Since this is very temporary anyway, using an md5 hash isn't a
313
+ # problem. This has been confirmed with Alex. -- Peter W.
314
+ path_hash = Digest::MD5.hexdigest(file[:path])
315
+ tmp_path = "./tmp/chance/#{path_hash}.scss"
314
316
 
315
317
  FileUtils.mkdir_p(File.dirname(tmp_path))
316
318
 
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: sproutcore
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease: 6
5
- version: 1.5.0.rc.1
5
+ version: 1.5.0.rc.2
6
6
  platform: ruby
7
7
  authors:
8
8
  - Strobe, Inc., Apple Inc. and contributors
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-04-02 00:00:00 -07:00
13
+ date: 2011-04-11 00:00:00 -07:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
@@ -1164,25 +1164,25 @@ files:
1164
1164
  - lib/frameworks/sproutcore/design/Sproutcore_Design_Template.graffle/image8.png
1165
1165
  - lib/frameworks/sproutcore/design/Sproutcore_Design_Template.graffle/QuickLook/Preview.pdf
1166
1166
  - lib/frameworks/sproutcore/design/Sproutcore_Design_Template.graffle/QuickLook/Thumbnail.tiff
1167
- - lib/frameworks/sproutcore/design/TestRunner_Design.gaffle/data.plist
1168
- - lib/frameworks/sproutcore/design/TestRunner_Design.gaffle/image10.png
1169
- - lib/frameworks/sproutcore/design/TestRunner_Design.gaffle/image11.png
1170
- - lib/frameworks/sproutcore/design/TestRunner_Design.gaffle/image13.png
1171
- - lib/frameworks/sproutcore/design/TestRunner_Design.gaffle/image15.png
1172
- - lib/frameworks/sproutcore/design/TestRunner_Design.gaffle/image16.png
1173
- - lib/frameworks/sproutcore/design/TestRunner_Design.gaffle/image17.png
1174
- - lib/frameworks/sproutcore/design/TestRunner_Design.gaffle/image18.png
1175
- - lib/frameworks/sproutcore/design/TestRunner_Design.gaffle/image19.png
1176
- - lib/frameworks/sproutcore/design/TestRunner_Design.gaffle/image22.tiff
1177
- - lib/frameworks/sproutcore/design/TestRunner_Design.gaffle/image23.png
1178
- - lib/frameworks/sproutcore/design/TestRunner_Design.gaffle/image24.png
1179
- - lib/frameworks/sproutcore/design/TestRunner_Design.gaffle/image25.png
1180
- - lib/frameworks/sproutcore/design/TestRunner_Design.gaffle/image30.png
1181
- - lib/frameworks/sproutcore/design/TestRunner_Design.gaffle/image31.png
1182
- - lib/frameworks/sproutcore/design/TestRunner_Design.gaffle/image8.png
1183
- - lib/frameworks/sproutcore/design/TestRunner_Design.gaffle/image9.png
1184
- - lib/frameworks/sproutcore/design/TestRunner_Design.gaffle/QuickLook/Preview.pdf
1185
- - lib/frameworks/sproutcore/design/TestRunner_Design.gaffle/QuickLook/Thumbnail.tiff
1167
+ - lib/frameworks/sproutcore/design/TestRunner_Design.graffle/data.plist
1168
+ - lib/frameworks/sproutcore/design/TestRunner_Design.graffle/image10.png
1169
+ - lib/frameworks/sproutcore/design/TestRunner_Design.graffle/image11.png
1170
+ - lib/frameworks/sproutcore/design/TestRunner_Design.graffle/image13.png
1171
+ - lib/frameworks/sproutcore/design/TestRunner_Design.graffle/image15.png
1172
+ - lib/frameworks/sproutcore/design/TestRunner_Design.graffle/image16.png
1173
+ - lib/frameworks/sproutcore/design/TestRunner_Design.graffle/image17.png
1174
+ - lib/frameworks/sproutcore/design/TestRunner_Design.graffle/image18.png
1175
+ - lib/frameworks/sproutcore/design/TestRunner_Design.graffle/image19.png
1176
+ - lib/frameworks/sproutcore/design/TestRunner_Design.graffle/image22.tiff
1177
+ - lib/frameworks/sproutcore/design/TestRunner_Design.graffle/image23.png
1178
+ - lib/frameworks/sproutcore/design/TestRunner_Design.graffle/image24.png
1179
+ - lib/frameworks/sproutcore/design/TestRunner_Design.graffle/image25.png
1180
+ - lib/frameworks/sproutcore/design/TestRunner_Design.graffle/image30.png
1181
+ - lib/frameworks/sproutcore/design/TestRunner_Design.graffle/image31.png
1182
+ - lib/frameworks/sproutcore/design/TestRunner_Design.graffle/image8.png
1183
+ - lib/frameworks/sproutcore/design/TestRunner_Design.graffle/image9.png
1184
+ - lib/frameworks/sproutcore/design/TestRunner_Design.graffle/QuickLook/Preview.pdf
1185
+ - lib/frameworks/sproutcore/design/TestRunner_Design.graffle/QuickLook/Thumbnail.tiff
1186
1186
  - lib/frameworks/sproutcore/frameworks/animation/Buildfile
1187
1187
  - lib/frameworks/sproutcore/frameworks/animation/core.js
1188
1188
  - lib/frameworks/sproutcore/frameworks/animation/LICENSE
@@ -1199,6 +1199,11 @@ files:
1199
1199
  - lib/frameworks/sproutcore/frameworks/core_foundation/controllers/controller.js
1200
1200
  - lib/frameworks/sproutcore/frameworks/core_foundation/controllers/object.js
1201
1201
  - lib/frameworks/sproutcore/frameworks/core_foundation/core.js
1202
+ - lib/frameworks/sproutcore/frameworks/core_foundation/ext/handlebars/bind.js
1203
+ - lib/frameworks/sproutcore/frameworks/core_foundation/ext/handlebars/collection.js
1204
+ - lib/frameworks/sproutcore/frameworks/core_foundation/ext/handlebars/localization.js
1205
+ - lib/frameworks/sproutcore/frameworks/core_foundation/ext/handlebars/view.js
1206
+ - lib/frameworks/sproutcore/frameworks/core_foundation/ext/handlebars.js
1202
1207
  - lib/frameworks/sproutcore/frameworks/core_foundation/ext/object.js
1203
1208
  - lib/frameworks/sproutcore/frameworks/core_foundation/ext/run_loop.js
1204
1209
  - lib/frameworks/sproutcore/frameworks/core_foundation/mixins/delegate_support.js
@@ -1224,6 +1229,7 @@ files:
1224
1229
  - lib/frameworks/sproutcore/frameworks/core_foundation/system/builder.js
1225
1230
  - lib/frameworks/sproutcore/frameworks/core_foundation/system/core_query.js
1226
1231
  - lib/frameworks/sproutcore/frameworks/core_foundation/system/cursor.js
1232
+ - lib/frameworks/sproutcore/frameworks/core_foundation/system/datetime.js
1227
1233
  - lib/frameworks/sproutcore/frameworks/core_foundation/system/device.js
1228
1234
  - lib/frameworks/sproutcore/frameworks/core_foundation/system/event.js
1229
1235
  - lib/frameworks/sproutcore/frameworks/core_foundation/system/json.js
@@ -1447,9 +1453,10 @@ files:
1447
1453
  - lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/retrieveRecord.js
1448
1454
  - lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/unloadRecords.js
1449
1455
  - lib/frameworks/sproutcore/frameworks/datastore/tests/system/store/writeDataHash.js
1450
- - lib/frameworks/sproutcore/frameworks/datetime/resources/strings.js
1451
- - lib/frameworks/sproutcore/frameworks/datetime/system/datetime.js
1452
- - lib/frameworks/sproutcore/frameworks/datetime/tests/system/datetime.js
1456
+ - lib/frameworks/sproutcore/frameworks/datetime/frameworks/core/system/datetime.js
1457
+ - lib/frameworks/sproutcore/frameworks/datetime/frameworks/core/tests/system/datetime.js
1458
+ - lib/frameworks/sproutcore/frameworks/datetime/frameworks/localized/resources/strings.js
1459
+ - lib/frameworks/sproutcore/frameworks/datetime/frameworks/localized/system/datetime.js
1453
1460
  - lib/frameworks/sproutcore/frameworks/debug/core.js
1454
1461
  - lib/frameworks/sproutcore/frameworks/debug/invoke_once_last_debugging.js
1455
1462
  - lib/frameworks/sproutcore/frameworks/designer/coders/design.js
@@ -1875,11 +1882,6 @@ files:
1875
1882
  - lib/frameworks/sproutcore/frameworks/foundation/views/image.js
1876
1883
  - lib/frameworks/sproutcore/frameworks/foundation/views/label.js
1877
1884
  - lib/frameworks/sproutcore/frameworks/foundation/views/text_field.js
1878
- - lib/frameworks/sproutcore/frameworks/handlebars/extensions/bind.js
1879
- - lib/frameworks/sproutcore/frameworks/handlebars/extensions/collection.js
1880
- - lib/frameworks/sproutcore/frameworks/handlebars/extensions/localization.js
1881
- - lib/frameworks/sproutcore/frameworks/handlebars/extensions/view.js
1882
- - lib/frameworks/sproutcore/frameworks/handlebars/extensions.js
1883
1885
  - lib/frameworks/sproutcore/frameworks/handlebars/handlebars.js
1884
1886
  - lib/frameworks/sproutcore/frameworks/jquery/jquery-buffer.js
1885
1887
  - lib/frameworks/sproutcore/frameworks/jquery/jquery-buffered.js
@@ -1897,6 +1899,16 @@ files:
1897
1899
  - lib/frameworks/sproutcore/frameworks/media/views/simple_controls.js
1898
1900
  - lib/frameworks/sproutcore/frameworks/media/views/video.js
1899
1901
  - lib/frameworks/sproutcore/frameworks/mini/license.js
1902
+ - lib/frameworks/sproutcore/frameworks/qunit/package.json
1903
+ - lib/frameworks/sproutcore/frameworks/qunit/qunit/qunit.css
1904
+ - lib/frameworks/sproutcore/frameworks/qunit/qunit/qunit.js
1905
+ - lib/frameworks/sproutcore/frameworks/qunit/README.md
1906
+ - lib/frameworks/sproutcore/frameworks/qunit/test/headless.html
1907
+ - lib/frameworks/sproutcore/frameworks/qunit/test/index.html
1908
+ - lib/frameworks/sproutcore/frameworks/qunit/test/logs.html
1909
+ - lib/frameworks/sproutcore/frameworks/qunit/test/logs.js
1910
+ - lib/frameworks/sproutcore/frameworks/qunit/test/same.js
1911
+ - lib/frameworks/sproutcore/frameworks/qunit/test/test.js
1900
1912
  - lib/frameworks/sproutcore/frameworks/runtime/core.js
1901
1913
  - lib/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/base.js
1902
1914
  - lib/frameworks/sproutcore/frameworks/runtime/debug/test_suites/array/indexOf.js
@@ -2032,8 +2044,6 @@ files:
2032
2044
  - lib/frameworks/sproutcore/frameworks/testing/english.lproj/runner.css
2033
2045
  - lib/frameworks/sproutcore/frameworks/testing/english.lproj/testsuite.css
2034
2046
  - lib/frameworks/sproutcore/frameworks/testing/extras.js
2035
- - lib/frameworks/sproutcore/frameworks/testing/jquery.js
2036
- - lib/frameworks/sproutcore/frameworks/testing/qunit.js
2037
2047
  - lib/frameworks/sproutcore/frameworks/testing/system/dump.js
2038
2048
  - lib/frameworks/sproutcore/frameworks/testing/system/equiv.js
2039
2049
  - lib/frameworks/sproutcore/frameworks/testing/system/plan.js