sproutcore 0.9.17 → 0.9.18

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 (72) hide show
  1. data/History.txt +45 -2
  2. data/Manifest.txt +10 -0
  3. data/Rakefile +1 -1
  4. data/app_generators/sproutcore/templates/sc-config +8 -2
  5. data/bin/sc-server +4 -0
  6. data/clients/sc_docs/english.lproj/body.css +0 -20
  7. data/clients/sc_docs/english.lproj/body.rhtml +1 -3
  8. data/clients/sc_docs/english.lproj/strings.js +1 -1
  9. data/clients/sc_docs/french.lproj/strings.js +14 -0
  10. data/clients/sc_test_runner/english.lproj/body.css +0 -20
  11. data/clients/sc_test_runner/english.lproj/body.rhtml +1 -3
  12. data/config/hoe.rb +1 -1
  13. data/frameworks/sproutcore/HISTORY +56 -1
  14. data/frameworks/sproutcore/debug/trace.js +81 -0
  15. data/frameworks/sproutcore/debug/unittest.js +2 -1
  16. data/frameworks/sproutcore/english.lproj/buttons.css +5 -2
  17. data/frameworks/sproutcore/english.lproj/core.css +0 -16
  18. data/frameworks/sproutcore/english.lproj/images/sc-theme-sprite.png +0 -0
  19. data/frameworks/sproutcore/english.lproj/splitview.css +83 -0
  20. data/frameworks/sproutcore/english.lproj/theme.css +21 -5
  21. data/frameworks/sproutcore/foundation/object.js +23 -0
  22. data/frameworks/sproutcore/foundation/string.js +4 -3
  23. data/frameworks/sproutcore/lib/core_views.rb +43 -8
  24. data/frameworks/sproutcore/lib/form_views.rb +2 -2
  25. data/frameworks/sproutcore/lib/index.rhtml +1 -1
  26. data/frameworks/sproutcore/mixins/enumerable.js +4 -8
  27. data/frameworks/sproutcore/mixins/selection_support.js +1 -1
  28. data/frameworks/sproutcore/models/collection.js +14 -3
  29. data/frameworks/sproutcore/models/record.js +6 -5
  30. data/frameworks/sproutcore/models/store.js +3 -3
  31. data/frameworks/sproutcore/panes/picker.js +1 -0
  32. data/frameworks/sproutcore/server/rails_server.js +4 -7
  33. data/frameworks/sproutcore/server/server.js +58 -1
  34. data/frameworks/sproutcore/tests/controllers/object.rhtml +1 -1
  35. data/frameworks/sproutcore/tests/models/collection.rhtml +160 -0
  36. data/frameworks/sproutcore/tests/models/model.rhtml +15 -3
  37. data/frameworks/sproutcore/tests/views/collection/base.rhtml +120 -47
  38. data/frameworks/sproutcore/tests/views/collection/source_list_rendering.rhtml +232 -0
  39. data/frameworks/sproutcore/tests/views/view/frame.rhtml +2 -2
  40. data/frameworks/sproutcore/tests/views/view/innerFrame.rhtml +87 -85
  41. data/frameworks/sproutcore/tests/views/view/scrollFrame.rhtml +25 -26
  42. data/frameworks/sproutcore/views/collection/collection.js +5 -1
  43. data/frameworks/sproutcore/views/field/select_field.js +1 -1
  44. data/frameworks/sproutcore/views/radio_group.js +2 -2
  45. data/frameworks/sproutcore/views/split.js +191 -174
  46. data/frameworks/sproutcore/views/split_divider.js +71 -68
  47. data/frameworks/sproutcore/views/view.js +65 -25
  48. data/lib/sproutcore.rb +4 -1
  49. data/lib/sproutcore/build_tools/html_builder.rb +50 -46
  50. data/lib/sproutcore/build_tools/resource_builder.rb +17 -5
  51. data/lib/sproutcore/bundle_installer.rb +3 -1
  52. data/lib/sproutcore/bundle_manifest.rb +4 -3
  53. data/lib/sproutcore/cssmin.rb +195 -0
  54. data/lib/sproutcore/generator_helper.rb +15 -0
  55. data/lib/sproutcore/helpers/capture_helper.rb +2 -22
  56. data/lib/sproutcore/helpers/dom_id_helper.rb +14 -0
  57. data/lib/sproutcore/helpers/static_helper.rb +6 -2
  58. data/lib/sproutcore/helpers/text_helper.rb +1 -1
  59. data/lib/sproutcore/merb.rb +2 -2
  60. data/lib/sproutcore/renderers/erubis.rb +43 -0
  61. data/lib/sproutcore/renderers/haml.rb +28 -0
  62. data/lib/sproutcore/renderers/sass.rb +42 -0
  63. data/lib/sproutcore/version.rb +1 -1
  64. data/lib/sproutcore/view_helpers.rb +40 -46
  65. data/sc_generators/controller/controller_generator.rb +1 -1
  66. data/sc_generators/language/USAGE +5 -7
  67. data/sc_generators/language/language_generator.rb +1 -1
  68. data/sc_generators/language/templates/strings.js +5 -1
  69. data/sc_generators/model/model_generator.rb +1 -1
  70. data/sc_generators/test/test_generator.rb +1 -1
  71. data/sc_generators/view/view_generator.rb +1 -1
  72. metadata +12 -5
@@ -0,0 +1,232 @@
1
+ <% content_for('final') do %>
2
+ <script>
3
+
4
+ // create some item data...
5
+ [
6
+ { guid: '1001', name: 'item one', group: '1' },
7
+ { guid: '1002', name: 'item two', group: '1' },
8
+ { guid: '1003', name: 'item three', group: '2' },
9
+ { guid: '1004', name: 'item four', group: '3' },
10
+ { guid: '1005', name: 'item five', group: '3' },
11
+ { guid: '1006', name: 'item six', group: '3' }
12
+ ].each(function(o){ SC.Store.addRecord(SC.Record.create(o)); });
13
+
14
+ // a collection to hold the items...
15
+ testCollection = SC.Record.collection();
16
+ testCollection.refresh();
17
+
18
+ // a controller for the collection...
19
+ testController = SC.CollectionController.create();
20
+
21
+ Test.context("A grouped SC.SourceListView with its content set to a SC.CollectionController", {
22
+
23
+ "Item views should be the same width as the SC.CollectionView": function()
24
+ {
25
+ var widthOfFirstItemView = function() {
26
+ var itemView = testSourceListView.get('itemViews').first() ;
27
+ return (itemView) ? itemView.get('frame').width : null ;
28
+ } ;
29
+
30
+ widthOfFirstItemView().shouldEqual(testSourceListView.get('frame').width) ;
31
+
32
+ SC.Store.addRecord( SC.Record.create({ guid: '0999', name: 'item zero', group: '1' }) );
33
+
34
+ widthOfFirstItemView().shouldEqual(testSourceListView.get('frame').width) ;
35
+ },
36
+
37
+ "Group views should be the same width as the SC.CollectionView": function()
38
+ {
39
+ var widthOfFirstGroupView = function() {
40
+ var groupView = testSourceListView.get('groupViews').first() ;
41
+ return (groupView) ? groupView.get('frame').width : null ;
42
+ } ;
43
+
44
+ widthOfFirstGroupView().shouldEqual(testSourceListView.get('frame').width) ;
45
+ },
46
+
47
+ // setup: function()
48
+ // {
49
+ // // add a scroll view wrapper.
50
+ // scrollView = SC.ScrollView.create() ;
51
+ // scrollView.set('frame', { x: 10, y: 10, width: 100, height: 100 });
52
+ // SC.window.appendChild(scrollView);
53
+ //
54
+ // // create the view...
55
+ // testSourceListView = SC.ListView.extend({
56
+ // contentValueKey: 'name',
57
+ // groupBy: 'group',
58
+ // contentBinding: 'testController.arrangedObjects',
59
+ // selectionBinding: 'testController.selection'
60
+ // }).create();
61
+ //
62
+ // scrollView.set('content', testSourceListView) ;
63
+ // },
64
+ //
65
+ // teardown: function()
66
+ // {
67
+ // // tell SC.Store to dump all the records...
68
+ // // otherwise, since SC.Store is shared across all tests (yuk!) we'll get shared fixtues
69
+ // testCollection.get('records').each(function(r){ SC.Store.removeRecord(r); });
70
+ //
71
+ // // remove the view from SC.window... again, no shared fixtures...
72
+ // testSourceListView.removeFromParent();
73
+ // scrollView.removeFromParent() ;
74
+ //
75
+ // delete testSourceListView;
76
+ // delete testCollection;
77
+ // delete testController;
78
+ // delete scrollView ;
79
+ // }
80
+
81
+ setup: function()
82
+ {
83
+ // add a scroll view wrapper.
84
+ scrollView = SC.ScrollView.create() ;
85
+ scrollView.set('frame', { x: 10, y: 10, width: 100, height: 30 }) ;
86
+ SC.window.appendChild(scrollView) ;
87
+
88
+ // create the view...
89
+ testSourceListView = SC.SourceListView.create({
90
+ contentValueKey: 'name',
91
+ groupBy: 'group',
92
+ contentBinding: 'testController.arrangedObjects',
93
+ selectionBinding: 'testController.selection'
94
+ }) ;
95
+ scrollView.set('content', testSourceListView) ;
96
+
97
+ testController.set('content', testCollection) ;
98
+ },
99
+
100
+ teardown: function()
101
+ {
102
+ // remove the view from SC.window
103
+ testSourceListView.removeFromParent() ;
104
+ scrollView.removeFromParent() ;
105
+
106
+ delete testSourceListView ;
107
+ delete scrollView ;
108
+
109
+ testController.set('content', null) ;
110
+ }
111
+
112
+ });
113
+
114
+ Test.context("A grouped SC.SourceListView with its content set to a SC.CollectionController, after the containing SC.ScrollView has been resized", {
115
+
116
+
117
+ "Item views should be the same width as the SC.CollectionView": function()
118
+ {
119
+ var widthOfFirstItemView = function() {
120
+ var itemView = testSourceListView.get('itemViews').first() ;
121
+ return (itemView) ? itemView.get('frame').width : null ;
122
+ } ;
123
+
124
+ widthOfFirstItemView().shouldEqual(testSourceListView.get('frame').width) ;
125
+
126
+ SC.Store.addRecord( SC.Record.create({ guid: '0999', name: 'item zero', group: '1' }) );
127
+
128
+ widthOfFirstItemView().shouldEqual(testSourceListView.get('frame').width) ;
129
+ },
130
+
131
+ "Group views should be the same width as the SC.CollectionView": function()
132
+ {
133
+ var widthOfFirstGroupView = function() {
134
+ var groupView = testSourceListView.get('groupViews').first() ;
135
+ return (groupView) ? groupView.get('frame').width : null ;
136
+ } ;
137
+
138
+ widthOfFirstGroupView().shouldEqual(testSourceListView.get('frame').width) ;
139
+ },
140
+
141
+ // setup: function()
142
+ // {
143
+ // // add a scroll view wrapper.
144
+ // scrollView = SC.ScrollView.create() ;
145
+ // scrollView.set('frame', { x: 10, y: 10, width: 100, height: 100 });
146
+ // SC.window.appendChild(scrollView);
147
+ //
148
+ // // create the view...
149
+ // testSourceListView = SC.SourceListView.extend({
150
+ // contentValueKey: 'name',
151
+ // groupBy: 'group',
152
+ // contentBinding: 'testController.arrangedObjects',
153
+ // selectionBinding: 'testController.selection'
154
+ // }).create();
155
+ //
156
+ // scrollView.set('content', testSourceListView) ;
157
+ //
158
+ // // create some item data...
159
+ // [
160
+ // { guid: '1001', name: 'item one', group: '1' },
161
+ // { guid: '1002', name: 'item two', group: '1' },
162
+ // { guid: '1003', name: 'item three', group: '2' },
163
+ // { guid: '1004', name: 'item four', group: '3' },
164
+ // { guid: '1005', name: 'item five', group: '3' },
165
+ // { guid: '1006', name: 'item six', group: '3' }
166
+ // ].each(function(o){ SC.Store.addRecord(SC.Record.create(o)); });
167
+ //
168
+ // // a collection to hold the items...
169
+ // testCollection = SC.Record.collection();
170
+ // testCollection.refresh();
171
+ //
172
+ // // a controller for the collection...
173
+ // testController = SC.CollectionController.create();
174
+ // testController.set('content', testCollection);
175
+ //
176
+ // // resize the scroll view
177
+ // scrollView.viewFrameWillChange()
178
+ // scrollView.set('frame', {x: 10, y: 10, width: 200, height: 100})
179
+ // scrollView.viewFrameDidChange()
180
+ //
181
+ // },
182
+ // teardown: function()
183
+ // {
184
+ // // tell SC.Store to dump all the records...
185
+ // // otherwise, since SC.Store is shared across all tests (yuk!) we'll get shared fixtues
186
+ // testCollection.get('records').each(function(r){ SC.Store.removeRecord(r); });
187
+ //
188
+ // // remove the view from SC.window... again, no shared fixtures...
189
+ // testSourceListView.removeFromParent();
190
+ // scrollView.removeFromParent() ;
191
+ //
192
+ // delete testSourceListView;
193
+ // delete testCollection;
194
+ // delete testController;
195
+ // delete scrollView ;
196
+ // }
197
+
198
+ setup: function()
199
+ {
200
+ // add a scroll view wrapper.
201
+ scrollView = SC.ScrollView.create() ;
202
+ scrollView.set('frame', { x: 10, y: 10, width: 100, height: 30 }) ;
203
+ SC.window.appendChild(scrollView) ;
204
+
205
+ // create the view...
206
+ testSourceListView = SC.SourceListView.create({
207
+ contentValueKey: 'name',
208
+ groupBy: 'group',
209
+ contentBinding: 'testController.arrangedObjects',
210
+ selectionBinding: 'testController.selection'
211
+ }) ;
212
+ scrollView.set('content', testSourceListView) ;
213
+
214
+ testController.set('content', testCollection) ;
215
+ },
216
+
217
+ teardown: function()
218
+ {
219
+ // remove the view from SC.window
220
+ testSourceListView.removeFromParent() ;
221
+ scrollView.removeFromParent() ;
222
+
223
+ delete testSourceListView ;
224
+ delete scrollView ;
225
+
226
+ testController.set('content', null) ;
227
+ }
228
+
229
+ });
230
+
231
+ </script>
232
+ <% end %>
@@ -15,8 +15,8 @@ Test.context("CASE 1: Auto-layout view with no padding & no border", {
15
15
  "frame should reflect current offset settings": function() {
16
16
  var el = this.v.rootElement ;
17
17
  var f = { x: el.offsetTop, y: el.offsetLeft, width: el.offsetWidth, height: el.offsetHeight };
18
- console.log(this.v.get('frame').x) ;
19
- console.log('this.frame', this.v.get('frame')) ;
18
+ // console.log(this.v.get('frame').x) ;
19
+ // console.log('this.frame', this.v.get('frame')) ;
20
20
  SC.rectsEqual(f, this.v.get('frame')).shouldEqual(true) ;
21
21
  },
22
22
 
@@ -10,91 +10,91 @@
10
10
 
11
11
  <script>
12
12
 
13
- // Test.context("CASE 1: Auto-layout view with no padding & no border", {
14
- //
15
- // // IMPORTANT: This test validates that innerFrame works even on elements in
16
- // // IE when hasLayout = false. Make sure you do not edit the CSS or other
17
- // // properties for this test in such a way that it would give the test
18
- // // element hasLayout.
19
- // "frame should == innerFrame": function() {
20
- //
21
- // // verify hasLayout is false in IE.
22
- // if (SC.Platform.IE) {
23
- // var hasLayout = v.rootElement.currentStyle.hasLayout ;
24
- // assertEqual(hasLayout, false, 'element.hasLayout MUST be false in IE');
25
- // }
26
- //
27
- // SC.rectsEqual(v.get('frame'), v.get('innerFrame')).shouldEqual(true) ;
28
- // },
29
- //
30
- // "frame & innerFrame should change when CSS changed and viewFrameDidChange() is called": function() {
31
- // var origFrame = this.v.get('frame') ;
32
- // var origInnerFrame = this.v.get('innerFrame') ;
33
- //
34
- // this.v.addClassName('half') ;
35
- // this.v.viewFrameDidChange() ;
36
- //
37
- // SC.rectsEqual(this.v.get('frame'), origFrame).shouldEqual(false) ;
38
- // SC.rectsEqual(this.v.get('innerFrame'), origInnerFrame).shouldEqual(false) ;
39
- //
40
- // this.v.removeClassName('half') ; //reset
41
- // },
42
- //
43
- // setup: function() { this.v = SC.page.get('case1'); }
44
- //
45
- // });
46
- //
47
- //
48
- // // CASE 2: Auto-layout of view with padding
49
- // // - same as Case 1, except innerFrame = frame less padding
50
- // CASE2_OFFSET = 2;
51
- // Test.context("CASE 2: Auto-layout view with padding & border", {
52
- //
53
- // "innerFrame should == frame less border": function() {
54
- // var f = v.get('frame') ;
55
- // f.x += CASE2_OFFSET; f.y += CASE2_OFFSET;
56
- // f.width -= (CASE2_OFFSET*2); f.height -= (CASE2_OFFSET*2) ;
57
- // //console.log('f: %@ if: %@'.fmt($H(f).inspect(), $H(this.v.get('innerFrame')).inspect()));
58
- //
59
- // SC.rectsEqual(f, v.get('innerFrame')).shouldEqual(true) ;
60
- // },
61
- //
62
- // "frame & innerFrame should change when CSS changed and viewFrameDidChange is called.; innerFrame should maintain proportion": function() {
63
- // var origFrame = v.get('frame') ;
64
- // var origInnerFrame = v.get('innerFrame') ;
65
- //
66
- // // verify that frames change
67
- // v.addClassName('half') ;
68
- // v.viewFrameDidChange() ;
69
- //
70
- // SC.rectsEqual(v.get('frame'), origFrame).shouldEqual(false) ;
71
- // SC.rectsEqual(v.get('innerFrame'), origInnerFrame).shouldEqual(false) ;
72
- //
73
- // // verify that innerFrame changes correctly.
74
- // var f = this.v.get('frame') ;
75
- // f.x += CASE2_OFFSET; f.y += CASE2_OFFSET;
76
- // f.width -= (CASE2_OFFSET*2); f.height -= (CASE2_OFFSET*2) ;
77
- // SC.rectsEqual(f, v.get('innerFrame')).shouldEqual(true) ;
78
- //
79
- // v.removeClassName('half') ;
80
- //
81
- // },
82
- //
83
- // "changing border should change innerFrame": function() {
84
- // v.setStyle({ border: '5px red solid' }) ;
85
- // v.viewFrameDidChange() ;
86
- // var f = v.get('frame') ;
87
- // f.x += 5; f.y += 5;
88
- // f.width -= 10; f.height -= 10 ;
89
- //
90
- // var got = v.get('innerFrame') ;
91
- // console.log('expected: %@ got: %@'.fmt($H(f).inspect(), $H(got).inspect()));
92
- // SC.rectsEqual(f, got).shouldEqual(true) ;
93
- // },
94
- //
95
- // setup: function() { this.v = SC.page.get('case2'); }
96
- //
97
- // });
13
+ Test.context("CASE 1: Auto-layout view with no padding & no border", {
14
+
15
+ // IMPORTANT: This test validates that innerFrame works even on elements in
16
+ // IE when hasLayout = false. Make sure you do not edit the CSS or other
17
+ // properties for this test in such a way that it would give the test
18
+ // element hasLayout.
19
+ "frame should == innerFrame": function() {
20
+
21
+ // verify hasLayout is false in IE.
22
+ if (SC.Platform.IE) {
23
+ var hasLayout = v.rootElement.currentStyle.hasLayout ;
24
+ assertEqual(hasLayout, false, 'element.hasLayout MUST be false in IE');
25
+ }
26
+
27
+ SC.rectsEqual(v.get('frame'), v.get('innerFrame')).shouldEqual(true) ;
28
+ },
29
+
30
+ "frame & innerFrame should change when CSS changed and viewFrameDidChange() is called": function() {
31
+ var origFrame = this.v.get('frame') ;
32
+ var origInnerFrame = this.v.get('innerFrame') ;
33
+
34
+ this.v.addClassName('half') ;
35
+ this.v.viewFrameDidChange() ;
36
+
37
+ SC.rectsEqual(this.v.get('frame'), origFrame).shouldEqual(false) ;
38
+ SC.rectsEqual(this.v.get('innerFrame'), origInnerFrame).shouldEqual(false) ;
39
+
40
+ this.v.removeClassName('half') ; //reset
41
+ },
42
+
43
+ setup: function() { this.v = SC.page.get('case1'); }
44
+
45
+ });
46
+
47
+
48
+ // CASE 2: Auto-layout of view with padding
49
+ // - same as Case 1, except innerFrame = frame less padding
50
+ CASE2_OFFSET = 2;
51
+ Test.context("CASE 2: Auto-layout view with padding & border", {
52
+
53
+ "innerFrame should == frame less border": function() {
54
+ var f = v.get('frame') ;
55
+ f.x += CASE2_OFFSET; f.y += CASE2_OFFSET;
56
+ f.width -= (CASE2_OFFSET*2); f.height -= (CASE2_OFFSET*2) ;
57
+ //console.log('f: %@ if: %@'.fmt($H(f).inspect(), $H(this.v.get('innerFrame')).inspect()));
58
+
59
+ SC.rectsEqual(f, v.get('innerFrame')).shouldEqual(true) ;
60
+ },
61
+
62
+ "frame & innerFrame should change when CSS changed and viewFrameDidChange is called.; innerFrame should maintain proportion": function() {
63
+ var origFrame = v.get('frame') ;
64
+ var origInnerFrame = v.get('innerFrame') ;
65
+
66
+ // verify that frames change
67
+ v.addClassName('half') ;
68
+ v.viewFrameDidChange() ;
69
+
70
+ SC.rectsEqual(v.get('frame'), origFrame).shouldEqual(false) ;
71
+ SC.rectsEqual(v.get('innerFrame'), origInnerFrame).shouldEqual(false) ;
72
+
73
+ // verify that innerFrame changes correctly.
74
+ var f = this.v.get('frame') ;
75
+ f.x += CASE2_OFFSET; f.y += CASE2_OFFSET;
76
+ f.width -= (CASE2_OFFSET*2); f.height -= (CASE2_OFFSET*2) ;
77
+ SC.rectsEqual(f, v.get('innerFrame')).shouldEqual(true) ;
78
+
79
+ v.removeClassName('half') ;
80
+
81
+ },
82
+
83
+ "changing border should change innerFrame": function() {
84
+ v.setStyle({ border: '5px red solid' }) ;
85
+ v.viewFrameDidChange() ;
86
+ var f = v.get('frame') ;
87
+ f.x += 5; f.y += 5;
88
+ f.width -= 10; f.height -= 10 ;
89
+
90
+ var got = v.get('innerFrame') ;
91
+ console.log('expected: %@ got: %@'.fmt($H(f).inspect(), $H(got).inspect()));
92
+ SC.rectsEqual(f, got).shouldEqual(true) ;
93
+ },
94
+
95
+ setup: function() { this.v = SC.page.get('case2'); }
96
+
97
+ });
98
98
 
99
99
  // CASE 3: Manual-layout view with some padding and border
100
100
  // - innerFrame should update at frame is changed.
@@ -171,9 +171,11 @@ Test.context("CASE 4: Positioned Child view inside of view with overflow = hidde
171
171
  },
172
172
 
173
173
  "nested innerframe origin should be 1,1 inside of parent": function() {
174
+ console.log('running');
174
175
  var f = this.v.child.nestedChild.get('innerFrame') ;
175
176
  f.x.shouldEqual(1) ;
176
177
  f.y.shouldEqual(1) ;
178
+ console.log('done');
177
179
  },
178
180
 
179
181
  "setting child frame should reflect in new frame value + border offset": function() {
@@ -24,7 +24,6 @@ Test.context("CASE 1: Non-scrollable view - all view fits within content", {
24
24
  // console.log('----') ;
25
25
  // console.log('f:' + $H(f).inspect()) ;
26
26
  // console.log('scroll:' + $H(this.v.get('scrollFrame')).inspect()) ;
27
- // console.log('innerFrame:' + $H(this.v.get('innerFrame')).inspect()) ;
28
27
  // console.log('frame:' + $H(this.v.get('frame')).inspect()) ;
29
28
 
30
29
  SC.rectsEqual(f, this.v.get('scrollFrame')).shouldEqual(true) ;
@@ -61,11 +60,11 @@ Test.context("CASE 2: Non-scrollable view with hidden overflow content", {
61
60
  var f = this.v.get('innerFrame') ;
62
61
  f.x = f.y = 0 ; f.height = CHILD_HEIGHT ;
63
62
 
64
- console.log('CASE 2 ----') ;
65
- console.log('f:' + $H(f).inspect()) ;
66
- console.log('scroll:' + $H(this.v.get('scrollFrame')).inspect()) ;
67
- console.log('innerFrame:' + $H(this.v.get('innerFrame')).inspect()) ;
68
- console.log('frame:' + $H(this.v.get('frame')).inspect()) ;
63
+ // console.log('CASE 2 ----') ;
64
+ // console.log('f:' + $H(f).inspect()) ;
65
+ // console.log('scroll:' + $H(this.v.get('scrollFrame')).inspect()) ;
66
+ // console.log('innerFrame:' + $H(this.v.get('innerFrame')).inspect()) ;
67
+ // console.log('frame:' + $H(this.v.get('frame')).inspect()) ;
69
68
 
70
69
  SC.rectsEqual(f, this.v.get('scrollFrame')).shouldEqual(true) ;
71
70
  },
@@ -112,11 +111,11 @@ Test.context("CASE 3: Scrollable view with hidden overflow content", {
112
111
  var f = this.v.get('innerFrame') ;
113
112
  f.x = f.y = 0 ; f.height = CHILD_HEIGHT ;
114
113
 
115
- console.log('CASE 3 ----') ;
116
- console.log('f:' + $H(f).inspect()) ;
117
- console.log('scroll:' + $H(this.v.get('scrollFrame')).inspect()) ;
118
- console.log('innerFrame:' + $H(this.v.get('innerFrame')).inspect()) ;
119
- console.log('frame:' + $H(this.v.get('frame')).inspect()) ;
114
+ // console.log('CASE 3 ----') ;
115
+ // console.log('f:' + $H(f).inspect()) ;
116
+ // console.log('scroll:' + $H(this.v.get('scrollFrame')).inspect()) ;
117
+ // console.log('innerFrame:' + $H(this.v.get('innerFrame')).inspect()) ;
118
+ // console.log('frame:' + $H(this.v.get('frame')).inspect()) ;
120
119
 
121
120
  SC.rectsEqual(f, this.v.get('scrollFrame')).shouldEqual(true) ;
122
121
  },
@@ -164,11 +163,11 @@ Test.context("CASE 4: Scrollable view with scrollbar and vertical overflow conte
164
163
  var f = this.v.get('innerFrame') ;
165
164
  f.x = f.y = 0 ; f.height = CHILD_HEIGHT ;
166
165
 
167
- console.log('CASE 4 ----') ;
168
- console.log('f:' + $H(f).inspect()) ;
169
- console.log('scroll:' + $H(this.v.get('scrollFrame')).inspect()) ;
170
- console.log('innerFrame:' + $H(this.v.get('innerFrame')).inspect()) ;
171
- console.log('frame:' + $H(this.v.get('frame')).inspect()) ;
166
+ // console.log('CASE 4 ----') ;
167
+ // console.log('f:' + $H(f).inspect()) ;
168
+ // console.log('scroll:' + $H(this.v.get('scrollFrame')).inspect()) ;
169
+ // console.log('innerFrame:' + $H(this.v.get('innerFrame')).inspect()) ;
170
+ // console.log('frame:' + $H(this.v.get('frame')).inspect()) ;
172
171
 
173
172
  SC.rectsEqual(f, this.v.get('scrollFrame')).shouldEqual(true) ;
174
173
  },
@@ -228,11 +227,11 @@ Test.context("CASE 5: Scrollable view with scrollbar and horizontal overflow con
228
227
  var f = this.v.get('innerFrame') ;
229
228
  f.x = f.y = 0 ; f.width = CHILD_WIDTH ;
230
229
 
231
- console.log('CASE 5 ----') ;
232
- console.log('f:' + $H(f).inspect()) ;
233
- console.log('scroll:' + $H(this.v.get('scrollFrame')).inspect()) ;
234
- console.log('innerFrame:' + $H(this.v.get('innerFrame')).inspect()) ;
235
- console.log('frame:' + $H(this.v.get('frame')).inspect()) ;
230
+ // console.log('CASE 5 ----') ;
231
+ // console.log('f:' + $H(f).inspect()) ;
232
+ // console.log('scroll:' + $H(this.v.get('scrollFrame')).inspect()) ;
233
+ // console.log('innerFrame:' + $H(this.v.get('innerFrame')).inspect()) ;
234
+ // console.log('frame:' + $H(this.v.get('frame')).inspect()) ;
236
235
 
237
236
  SC.rectsEqual(f, this.v.get('scrollFrame')).shouldEqual(true) ;
238
237
  },
@@ -295,11 +294,11 @@ Test.context("CASE 6: Scrollable view with scrollbar and horizontal overflow con
295
294
  f.x = f.y = 0 ; f.width = CHILD_WIDTH ;
296
295
  f.height = CHILD_HEIGHT ;
297
296
 
298
- console.log('CASE 6 ----') ;
299
- console.log('f:' + $H(f).inspect()) ;
300
- console.log('scroll:' + $H(this.v.get('scrollFrame')).inspect()) ;
301
- console.log('innerFrame:' + $H(this.v.get('innerFrame')).inspect()) ;
302
- console.log('frame:' + $H(this.v.get('frame')).inspect()) ;
297
+ // console.log('CASE 6 ----') ;
298
+ // console.log('f:' + $H(f).inspect()) ;
299
+ // console.log('scroll:' + $H(this.v.get('scrollFrame')).inspect()) ;
300
+ // console.log('innerFrame:' + $H(this.v.get('innerFrame')).inspect()) ;
301
+ // console.log('frame:' + $H(this.v.get('frame')).inspect()) ;
303
302
 
304
303
  SC.rectsEqual(f, this.v.get('scrollFrame')).shouldEqual(true) ;
305
304
  },