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.
- data/CHANGELOG +6 -0
- data/VERSION.yml +1 -1
- data/lib/Buildfile +1 -1
- data/lib/buildtasks/build.rake +14 -6
- data/lib/buildtasks/manifest.rake +171 -72
- data/lib/frameworks/sproutcore/Buildfile +3 -5
- data/lib/frameworks/sproutcore/CHANGELOG.md +9 -0
- data/lib/frameworks/sproutcore/apps/test_controls/resources/main_page.js +2 -1
- data/lib/frameworks/sproutcore/apps/test_controls/resources/progress_page.js +7 -17
- data/lib/frameworks/sproutcore/frameworks/bootstrap/system/browser.js +7 -1
- data/lib/frameworks/sproutcore/frameworks/bootstrap/system/loader.js +14 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/browser.js +0 -2
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/event.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/core_foundation/system/root_responder.js +14 -3
- data/lib/frameworks/sproutcore/frameworks/core_foundation/views/template/collection.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/datastore/models/record.js +2 -2
- data/lib/frameworks/sproutcore/frameworks/datastore/models/record_attribute.js +6 -0
- data/lib/frameworks/sproutcore/frameworks/datastore/system/store.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/mixins/scrollable.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/alert.js +49 -4
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/menu.js +8 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/panes/panel.js +46 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/button.js +32 -5
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/checkbox.js +32 -6
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/disclosure.js +31 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/progress.js +15 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/radio.js +28 -7
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/segmented.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/slider.js +20 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/render_delegates/well.js +2 -4
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/alert/ui.js +40 -34
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/menu/ui.js +35 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/panes/panel/ui.js +43 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/button/ui.js +47 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/checkbox/methods.js +6 -16
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/checkbox/ui.js +21 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/disclosure/ui.js +41 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/progress/ui.js +128 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/radio/ui.js +93 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/scroll/ui.js +13 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/scroller.js +28 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/segmented/methods.js +47 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/segmented/ui.js +51 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/toolbar/method.js +33 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/tests/views/toolbar/ui.js +29 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/views/checkbox.js +28 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/views/disclosure.js +9 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/views/list_item.js +148 -134
- data/lib/frameworks/sproutcore/frameworks/desktop/views/menu_item.js +18 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/views/menu_scroll.js +30 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/views/progress.js +9 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/views/radio.js +52 -4
- data/lib/frameworks/sproutcore/frameworks/desktop/views/scroll.js +2 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/views/scroller.js +36 -3
- data/lib/frameworks/sproutcore/frameworks/desktop/views/segmented.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/views/slider.js +9 -1
- data/lib/frameworks/sproutcore/frameworks/desktop/views/split.js +15 -4
- data/lib/frameworks/sproutcore/frameworks/desktop/views/split_divider.js +1 -6
- data/lib/frameworks/sproutcore/frameworks/desktop/views/tab.js +4 -2
- data/lib/frameworks/sproutcore/frameworks/desktop/views/toolbar.js +7 -0
- data/lib/frameworks/sproutcore/frameworks/desktop/views/well.js +1 -2
- data/lib/frameworks/sproutcore/frameworks/forms/views/form.js +3 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/english.lproj/bootstrap.rhtml +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/auto_resize.js +0 -9
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/editable.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/mixins/flowed_layout.js +2 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/canvas_image.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/render_delegates/label.js +25 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/system/chance.js +64 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/system/module.js +34 -27
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/editable/ui.js +42 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/mixins/inline_text_field/ui.js +62 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/image/ui.js +0 -8
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/label/ui.js +12 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/views/text_field/ui.js +48 -1
- data/lib/frameworks/sproutcore/frameworks/foundation/views/field.js +19 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/views/image.js +2 -0
- data/lib/frameworks/sproutcore/frameworks/foundation/views/label.js +11 -5
- data/lib/frameworks/sproutcore/frameworks/foundation/views/text_field.js +152 -74
- data/lib/frameworks/sproutcore/frameworks/runtime/private/observer_queue.js +12 -9
- data/lib/frameworks/sproutcore/frameworks/runtime/system/logger.js +1476 -176
- data/lib/frameworks/sproutcore/frameworks/runtime/system/run_loop.js +0 -2
- data/lib/frameworks/sproutcore/frameworks/runtime/tests/system/logger.js +227 -32
- data/lib/frameworks/sproutcore/frameworks/statechart/system/state.js +11 -11
- data/lib/frameworks/sproutcore/frameworks/statechart/system/statechart.js +1 -1
- data/lib/frameworks/sproutcore/frameworks/testing/system/runner.js +10 -0
- data/lib/frameworks/sproutcore/lib/index.rhtml +30 -8
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/18px/segmented.css +4 -4
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/24px/segmented.css +4 -4
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/30px/segmented.css +4 -4
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/44px/segmented.css +4 -4
- data/lib/frameworks/sproutcore/themes/ace/resources/segmented/segmented.css +4 -0
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/slider.css +5 -1
- data/lib/frameworks/sproutcore/themes/ace/resources/slider/ace/slider.js +11 -3
- data/lib/frameworks/sproutcore/themes/ace/resources/well/well.css +7 -8
- data/lib/frameworks/sproutcore/themes/ace/resources/well/well.js +2 -4
- data/lib/gen/app/templates/apps/@target_name@/Buildfile +14 -0
- data/lib/gen/app/templates/apps/@target_name@/theme.js +27 -0
- data/lib/gen/html_app/templates/apps/@target_name@/resources/stylesheets/@target_name@.css +4 -0
- data/lib/gen/project/templates/@filename@/Buildfile +7 -2
- data/lib/gen/theme/templates/themes/@target_name@/Buildfile +3 -0
- data/lib/gen/theme/templates/themes/@target_name@/theme.js +23 -0
- data/lib/sproutcore/builders.rb +2 -0
- data/lib/sproutcore/builders/chance.rb +64 -0
- data/lib/sproutcore/builders/chance_file.rb +59 -0
- data/lib/sproutcore/builders/combine.rb +0 -45
- data/lib/sproutcore/builders/html.rb +1 -1
- data/lib/sproutcore/builders/minify.rb +5 -17
- data/lib/sproutcore/builders/module.rb +2 -2
- data/lib/sproutcore/builders/string_wrapper.rb +13 -15
- data/lib/sproutcore/helpers.rb +1 -1
- data/lib/sproutcore/helpers/minifier.rb +56 -0
- data/lib/sproutcore/helpers/static_helper.rb +86 -40
- data/lib/sproutcore/models/generator.rb +16 -0
- data/lib/sproutcore/models/manifest_entry.rb +8 -1
- data/lib/sproutcore/models/target.rb +101 -33
- data/lib/sproutcore/tools.rb +0 -7
- data/lib/sproutcore/tools/build.rb +2 -37
- data/spec/buildtasks/manifest/prepare_build_tasks/chance_spec.rb +100 -0
- data/spec/buildtasks/manifest/prepare_build_tasks/combine_spec.rb +86 -9
- data/spec/buildtasks/manifest/prepare_build_tasks/css_spec.rb +1 -1
- data/spec/buildtasks/manifest/prepare_build_tasks/minify_spec.rb +1 -1
- data/spec/buildtasks/manifest/prepare_build_tasks/module_info_spec.rb +96 -0
- data/spec/buildtasks/manifest/prepare_build_tasks/module_spec.rb +83 -0
- data/spec/buildtasks/manifest/prepare_build_tasks/packed_spec.rb +37 -4
- data/spec/buildtasks/manifest/spec_helper.rb +4 -0
- data/spec/fixtures/builder_tests/Buildfile +11 -9
- data/spec/fixtures/builder_tests/apps/chance_test/Buildfile +14 -0
- data/spec/fixtures/builder_tests/apps/chance_test/core.js +27 -0
- data/spec/fixtures/builder_tests/apps/chance_test/main.js +30 -0
- data/spec/fixtures/builder_tests/apps/chance_test/resources/demo.css +6 -0
- data/spec/fixtures/builder_tests/apps/chance_test/resources/last_file.css +7 -0
- data/spec/fixtures/builder_tests/apps/chance_test/resources/loading.rhtml +9 -0
- data/spec/fixtures/builder_tests/apps/chance_test/resources/main_page.js +24 -0
- data/spec/fixtures/builder_tests/apps/chance_test/resources/z_first_file.css +6 -0
- data/spec/fixtures/builder_tests/apps/chance_test/theme.js +27 -0
- data/spec/fixtures/builder_tests/apps/module_test/module.js +1 -0
- data/spec/fixtures/builder_tests/apps/module_test/modules/deferred_module/english.lproj/req_style_2.css +0 -0
- data/spec/fixtures/builder_tests/apps/module_test/modules/deferred_module/english.lproj/test.rhtml +1 -0
- data/spec/fixtures/builder_tests/apps/module_test/modules/deferred_module/javascript.js +1 -0
- data/spec/fixtures/builder_tests/apps/module_test/modules/deferred_module/lib/alt_layout.rhtml +0 -0
- data/spec/fixtures/builder_tests/apps/module_test/modules/deferred_module/req_js_2.js +0 -0
- data/spec/fixtures/builder_tests/apps/module_test/modules/dynamic_req_target_1/dynamic_req_js_1.js +0 -0
- data/spec/fixtures/builder_tests/apps/module_test/modules/dynamic_req_target_1/english.lproj/dynamic_req_style_1.css +0 -0
- data/spec/fixtures/builder_tests/apps/module_test/modules/inlined_module/README +0 -0
- data/spec/fixtures/builder_tests/apps/module_test/modules/required_target/english.lproj/req_style_1.css +0 -0
- data/spec/fixtures/builder_tests/apps/module_test/modules/required_target/english.lproj/strings.js +4 -0
- data/spec/fixtures/builder_tests/apps/module_test/modules/required_target/english.lproj/test.rhtml +1 -0
- data/spec/fixtures/builder_tests/apps/module_test/modules/required_target/req_js_1.js +0 -0
- data/spec/fixtures/helper_tests/apps/minifier_test/core.js +8 -0
- data/spec/fixtures/real_world/Buildfile +11 -1
- data/spec/fixtures/real_world/apps/account/modules/preferences/README +0 -0
- data/spec/fixtures/real_world/apps/calendar/modules/preferences/README +0 -0
- data/spec/fixtures/real_world/apps/contacts/modules/preferences/README +0 -0
- data/spec/fixtures/real_world/apps/contacts/modules/printing/README +0 -0
- data/spec/fixtures/real_world/apps/mail/modules/preferences/README +0 -0
- data/spec/fixtures/real_world/apps/mail/modules/printing/README +0 -0
- data/spec/fixtures/real_world/apps/photos/modules/email/README +0 -0
- data/spec/fixtures/real_world/apps/photos/modules/preferences/README +0 -0
- data/spec/lib/builders/chance_file_spec.rb +63 -0
- data/spec/lib/builders/chance_spec.rb +81 -0
- data/spec/lib/builders/module_spec.rb +133 -0
- data/spec/lib/helpers/minifier.rb +31 -0
- data/spec/lib/models/project/find_targets_for_spec.rb +1 -1
- data/vendor/chance/lib/chance/imagers/data_url.rb +68 -17
- data/vendor/chance/lib/chance/instance.rb +55 -30
- data/vendor/chance/lib/chance/parser.rb +1 -1
- data/vendor/chance/lib/chance/slicing.rb +39 -3
- metadata +52 -7
- data/lib/frameworks/sproutcore/frameworks/foundation/system/logger.js +0 -163
- data/lib/frameworks/sproutcore/frameworks/foundation/tests/system/logger.js +0 -44
- data/spec/buildtasks/manifest/prepare_build_tasks/bundle_spec.rb +0 -254
- data/spec/fixtures/builder_tests/apps/bundle_test/bundle.js +0 -1
- data/spec/lib/builders/bundle_spec.rb +0 -295
@@ -9,57 +9,252 @@
|
|
9
9
|
// ie. setting the actual console.log = null means setting up
|
10
10
|
// and tearing down no longer work properly.
|
11
11
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
12
|
+
function testConsole() {
|
13
|
+
return {
|
14
|
+
log: function() { return true; },
|
15
|
+
alert: function() { return true; },
|
16
|
+
debug: function() { return true; },
|
17
|
+
dir: function() { return true; },
|
18
|
+
dirxml: function() { return true; },
|
19
|
+
error: function() { return true; },
|
20
|
+
group: function() { return true; },
|
21
|
+
groupEnd: function() { return true; },
|
22
|
+
info: function() { return true; },
|
23
|
+
profile: function() { return true; },
|
24
|
+
profileEnd: function() { return true; },
|
25
|
+
time: function() { return true; },
|
26
|
+
timeEnd: function() { return true; },
|
27
|
+
trace: function() { return true; },
|
28
|
+
warn: function() { return true; }
|
17
29
|
};
|
30
|
+
}
|
31
|
+
|
32
|
+
module("SC.Logger", {
|
33
|
+
setup: function() {
|
34
|
+
SC.Logger.set('reporter', testConsole());
|
35
|
+
|
36
|
+
SC.Logger.debugEnabled = true;
|
37
|
+
SC.Logger.format = true;
|
38
|
+
SC.Logger.fallBackOnLog = true;
|
39
|
+
SC.Logger.fallBackOnAlert = false;
|
40
|
+
},
|
41
|
+
teardown: function() {
|
42
|
+
}
|
43
|
+
});
|
44
|
+
|
45
|
+
|
46
|
+
// We'll use these a lot.
|
47
|
+
var debugMessage = "Test debug message",
|
48
|
+
infoMessage = "Test informational message",
|
49
|
+
warnMessage = "Test warning message",
|
50
|
+
errorMessage = "Test error message",
|
51
|
+
debugGroupTitle = "Test debug group title",
|
52
|
+
infoGroupTitle = "Test informational group title",
|
53
|
+
warnGroupTitle = "Test warning group title",
|
54
|
+
errorGroupTitle = "Test error group title";
|
55
|
+
|
56
|
+
var outputAll = function() {
|
57
|
+
// Outputs a log message for each possible level.
|
58
|
+
SC.Logger.debugGroup(debugGroupTitle);
|
59
|
+
SC.Logger.debug(debugMessage);
|
60
|
+
SC.Logger.debugGroupEnd();
|
61
|
+
|
62
|
+
SC.Logger.infoGroup(debugGroupTitle);
|
63
|
+
SC.Logger.info(infoMessage);
|
64
|
+
SC.Logger.infoGroupEnd();
|
65
|
+
|
66
|
+
SC.Logger.warnGroup(debugGroupTitle);
|
67
|
+
SC.Logger.warn(warnMessage);
|
68
|
+
SC.Logger.warnGroupEnd();
|
69
|
+
|
70
|
+
SC.Logger.errorGroup(debugGroupTitle);
|
71
|
+
SC.Logger.error(errorMessage);
|
72
|
+
SC.Logger.errorGroupEnd();
|
73
|
+
};
|
74
|
+
|
75
|
+
|
76
|
+
|
77
|
+
test("exists", function() {
|
78
|
+
equals(SC.Logger.get('exists'), true, "Reporter does exist check");
|
79
|
+
|
80
|
+
SC.Logger.set('reporter', null);
|
81
|
+
equals(SC.Logger.get('exists'), false, "Reporter does not exist check");
|
82
|
+
});
|
83
|
+
|
84
|
+
test("profile", function() {
|
85
|
+
equals(SC.Logger.profile(), true, "profile() function is defined");
|
18
86
|
|
19
|
-
SC.Logger.
|
20
|
-
SC.Logger.
|
21
|
-
|
87
|
+
SC.Logger.get('reporter').profile = null;
|
88
|
+
equals(SC.Logger.profile(), false, "profile() function is null");
|
89
|
+
});
|
90
|
+
|
91
|
+
test("profileEnd", function() {
|
92
|
+
equals(SC.Logger.profileEnd(), true, "profileEnd() function is defined");
|
22
93
|
|
23
|
-
|
24
|
-
|
25
|
-
delete SC.Logger.hasBeenCalled;
|
94
|
+
SC.Logger.get('reporter').profileEnd = null;
|
95
|
+
equals(SC.Logger.profileEnd(), false, "profileEnd() function is null");
|
26
96
|
});
|
27
97
|
|
28
|
-
test("
|
29
|
-
|
30
|
-
log: function() { SC.Logger.set('hasBeenCalled', YES); }
|
31
|
-
};
|
98
|
+
test("time", function() {
|
99
|
+
equals(SC.Logger.time('mytime'), true, "time() function is defined");
|
32
100
|
|
33
|
-
SC.Logger.
|
34
|
-
SC.Logger.
|
101
|
+
SC.Logger.get('reporter').time = null;
|
102
|
+
equals(SC.Logger.time('mytime'), false, "time() function is null");
|
103
|
+
});
|
104
|
+
|
105
|
+
test("timeEnd", function() {
|
106
|
+
equals(SC.Logger.timeEnd('mytime'), true, "timeEnd() function is defined");
|
35
107
|
|
36
|
-
|
108
|
+
SC.Logger.get('reporter').timeEnd = null;
|
109
|
+
equals(SC.Logger.timeEnd('mytime'), false, "timeEnd() function is null");
|
110
|
+
});
|
111
|
+
|
112
|
+
test("trace", function() {
|
113
|
+
equals(SC.Logger.trace(), true, "trace() function is defined");
|
37
114
|
|
38
|
-
SC.Logger.
|
115
|
+
SC.Logger.get('reporter').trace = null;
|
116
|
+
equals(SC.Logger.trace(), false, "trace() function is null");
|
117
|
+
});
|
118
|
+
|
119
|
+
test("_argumentsToString", function() {
|
120
|
+
equals(SC.Logger._argumentsToString.apply(SC.Logger, ["test", "test2"]), "test" + SC.LOGGER_LOG_DELIMITER + "test2", "Formatting using default delimiter");
|
39
121
|
|
40
|
-
|
122
|
+
SC.LOGGER_LOG_DELIMITER = "|";
|
123
|
+
equals(SC.Logger._argumentsToString.apply(SC.Logger, ["test", "test2"]), "test|test2", "Formatting using custom delimiter");
|
124
|
+
});
|
125
|
+
|
126
|
+
|
127
|
+
// ..........................................................
|
128
|
+
// LOG LEVELS
|
129
|
+
//
|
130
|
+
// Since we can't really test whether or not things are output to the console,
|
131
|
+
// we'll do all of our log level testing based on the log recording mechanism.
|
132
|
+
//
|
133
|
+
// In case anybody else has recorded a log message, all of these tests will
|
134
|
+
// start out by clearing the recorded log messages array.
|
135
|
+
|
136
|
+
test("Ensure that log levels function properly: none", function() {
|
137
|
+
SC.Logger.set('recordedLogMessages', null);
|
138
|
+
|
139
|
+
SC.Logger.set('logRecordingLevel', SC.LOGGER_LEVEL_NONE);
|
140
|
+
outputAll();
|
141
|
+
|
142
|
+
// If it was null before, it should be still be null, since no messages
|
143
|
+
// should have been logged.
|
144
|
+
equals(SC.Logger.get('recordedLogMessages'), null, "recordedLogMessages remains null");
|
145
|
+
|
146
|
+
// If it was an empty array before, it should still be an empty array.
|
147
|
+
SC.Logger.set('recordedLogMessages', []);
|
148
|
+
outputAll();
|
149
|
+
equals(SC.Logger.getPath('recordedLogMessages.length'), 0, "recordedLogMessages remains an empty array");
|
41
150
|
});
|
42
151
|
|
43
|
-
test("log", function() {
|
44
|
-
|
152
|
+
test("Ensure that log levels function properly: debug", function() {
|
153
|
+
SC.Logger.set('recordedLogMessages', null);
|
154
|
+
|
155
|
+
SC.Logger.set('logRecordingLevel', SC.LOGGER_LEVEL_DEBUG);
|
156
|
+
outputAll();
|
157
|
+
|
158
|
+
// All four messages (plus group begin / end directives) should have been
|
159
|
+
// logged.
|
160
|
+
equals(SC.Logger.getPath('recordedLogMessages.length'), 12, "recordedLogMessages should have all twelve entries");
|
161
|
+
|
162
|
+
equals(SC.Logger.getPath('recordedLogMessages.1').message, debugMessage, "recordedLogMessages[1] should be the debug message");
|
163
|
+
equals(SC.Logger.getPath('recordedLogMessages.4').message, infoMessage, "recordedLogMessages[4] should be the info message");
|
164
|
+
equals(SC.Logger.getPath('recordedLogMessages.7').message, warnMessage, "recordedLogMessages[7] should be the warn message");
|
165
|
+
equals(SC.Logger.getPath('recordedLogMessages.10').message, errorMessage, "recordedLogMessages[10] should be the error message");
|
45
166
|
});
|
46
167
|
|
47
|
-
test("
|
48
|
-
|
168
|
+
test("Ensure that log levels function properly: info", function() {
|
169
|
+
SC.Logger.set('recordedLogMessages', null);
|
170
|
+
|
171
|
+
SC.Logger.set('logRecordingLevel', SC.LOGGER_LEVEL_INFO);
|
172
|
+
outputAll();
|
173
|
+
|
174
|
+
// Three messages (plus group begin / end directives) should have been
|
175
|
+
// logged.
|
176
|
+
equals(SC.Logger.getPath('recordedLogMessages.length'), 9, "recordedLogMessages should have nine entries");
|
177
|
+
|
178
|
+
equals(SC.Logger.getPath('recordedLogMessages.1').message, infoMessage, "recordedLogMessages[1] should be the info message");
|
179
|
+
equals(SC.Logger.getPath('recordedLogMessages.4').message, warnMessage, "recordedLogMessages[4] should be the warn message");
|
180
|
+
equals(SC.Logger.getPath('recordedLogMessages.7').message, errorMessage, "recordedLogMessages[7] should be the error message");
|
49
181
|
});
|
50
182
|
|
51
|
-
test("
|
52
|
-
|
183
|
+
test("Ensure that log levels function properly: warn", function() {
|
184
|
+
SC.Logger.set('recordedLogMessages', null);
|
185
|
+
|
186
|
+
SC.Logger.set('logRecordingLevel', SC.LOGGER_LEVEL_WARN);
|
187
|
+
outputAll();
|
188
|
+
|
189
|
+
// Two messages (plus group begin / end directives) should have been logged.
|
190
|
+
equals(SC.Logger.getPath('recordedLogMessages.length'), 6, "recordedLogMessages should have 6 entries");
|
191
|
+
|
192
|
+
equals(SC.Logger.getPath('recordedLogMessages.1').message, warnMessage, "recordedLogMessages[1] should be the warn message");
|
193
|
+
equals(SC.Logger.getPath('recordedLogMessages.4').message, errorMessage, "recordedLogMessages[4] should be the error message");
|
53
194
|
});
|
54
195
|
|
55
|
-
test("error", function() {
|
56
|
-
|
196
|
+
test("Ensure that log levels function properly: error", function() {
|
197
|
+
SC.Logger.set('recordedLogMessages', null);
|
198
|
+
|
199
|
+
SC.Logger.set('logRecordingLevel', SC.LOGGER_LEVEL_ERROR);
|
200
|
+
outputAll();
|
201
|
+
|
202
|
+
// Only the error message (plus group begin / end directives) should have
|
203
|
+
// been logged.
|
204
|
+
equals(SC.Logger.getPath('recordedLogMessages.length'), 3, "recordedLogMessages should have three entries");
|
205
|
+
|
206
|
+
// That message should be equal to the error message.
|
207
|
+
equals(SC.Logger.getPath('recordedLogMessages.1').message, errorMessage, "recordedLogMessages[1] should be the error message");
|
57
208
|
});
|
58
209
|
|
59
|
-
|
60
|
-
|
210
|
+
|
211
|
+
test("Ensure that log messages via the “will format” methods actually format", function() {
|
212
|
+
SC.Logger.set('recordedLogMessages', null);
|
213
|
+
SC.Logger.set('logRecordingLevel', SC.LOGGER_LEVEL_DEBUG);
|
214
|
+
|
215
|
+
var format = "This message should be formatted: %@:%@",
|
216
|
+
expected = format.fmt(null, 1);
|
217
|
+
|
218
|
+
SC.Logger.debug(format, null, 1);
|
219
|
+
SC.Logger.info(format, null, 1);
|
220
|
+
SC.Logger.warn(format, null, 1);
|
221
|
+
SC.Logger.error(format, null, 1);
|
222
|
+
|
223
|
+
equals(SC.Logger.getPath('recordedLogMessages.0').message, expected, "debug() should call String.fmt");
|
224
|
+
equals(SC.Logger.getPath('recordedLogMessages.1').message, expected, "info() should call String.fmt");
|
225
|
+
equals(SC.Logger.getPath('recordedLogMessages.2').message, expected, "warn() should call String.fmt");
|
226
|
+
equals(SC.Logger.getPath('recordedLogMessages.3').message, expected, "error() should call String.fmt");
|
61
227
|
});
|
62
228
|
|
63
|
-
test("
|
64
|
-
|
229
|
+
test("Ensure that log messages via the “will not format” methods don’t format, but are still recorded", function() {
|
230
|
+
SC.Logger.set('recordedLogMessages', null);
|
231
|
+
SC.Logger.set('logRecordingLevel', SC.LOGGER_LEVEL_DEBUG);
|
232
|
+
|
233
|
+
var message = "This message should not be formatted: %@:%@";
|
234
|
+
SC.Logger.debugWithoutFmt(message, null, 1);
|
235
|
+
SC.Logger.infoWithoutFmt(message, null, 1);
|
236
|
+
SC.Logger.warnWithoutFmt(message, null, 1);
|
237
|
+
SC.Logger.errorWithoutFmt(message, null, 1);
|
238
|
+
|
239
|
+
// They should still be recorded and identified as a message.
|
240
|
+
equals(SC.Logger.getPath('recordedLogMessages.0').message, true, "debugWithoutFmt() should still record");
|
241
|
+
equals(SC.Logger.getPath('recordedLogMessages.1').message, true, "infoWithoutFmt() should still record");
|
242
|
+
equals(SC.Logger.getPath('recordedLogMessages.2').message, true, "warnWithoutFmt() should still record");
|
243
|
+
equals(SC.Logger.getPath('recordedLogMessages.3').message, true, "errorWithoutFmt() should still record");
|
244
|
+
|
245
|
+
equals(SC.Logger.getPath('recordedLogMessages.0').originalArguments[0], message, "debugWithoutFmt() should not call String.fmt");
|
246
|
+
equals(SC.Logger.getPath('recordedLogMessages.0').originalArguments[1], null, "debugWithoutFmt() should record all the arguments (1)");
|
247
|
+
equals(SC.Logger.getPath('recordedLogMessages.0').originalArguments[2], 1, "debugWithoutFmt() should record all the arguments (2)");
|
248
|
+
|
249
|
+
equals(SC.Logger.getPath('recordedLogMessages.1').originalArguments[0], message, "infoWithoutFmt() should not call String.fmt");
|
250
|
+
equals(SC.Logger.getPath('recordedLogMessages.1').originalArguments[1], null, "infoWithoutFmt() should record all the arguments (1)");
|
251
|
+
equals(SC.Logger.getPath('recordedLogMessages.2').originalArguments[2], 1, "infoWithoutFmt() should record all the arguments (2)");
|
252
|
+
|
253
|
+
equals(SC.Logger.getPath('recordedLogMessages.2').originalArguments[0], message, "warnWithoutFmt() should not call String.fmt");
|
254
|
+
equals(SC.Logger.getPath('recordedLogMessages.2').originalArguments[1], null, "warnWithoutFmt() should record all the arguments (1)");
|
255
|
+
equals(SC.Logger.getPath('recordedLogMessages.2').originalArguments[2], 1, "warnWithoutFmt() should record all the arguments (2)");
|
256
|
+
|
257
|
+
equals(SC.Logger.getPath('recordedLogMessages.3').originalArguments[0], message, "errorWithoutFmt() should not call String.fmt");
|
258
|
+
equals(SC.Logger.getPath('recordedLogMessages.3').originalArguments[1], null, "errorWithoutFmt() should record all the arguments (1)");
|
259
|
+
equals(SC.Logger.getPath('recordedLogMessages.3').originalArguments[2], 1, "errorWithoutFmt() should record all the arguments (2)");
|
65
260
|
});
|
@@ -142,7 +142,7 @@ SC.State = SC.Object.extend({
|
|
142
142
|
}
|
143
143
|
|
144
144
|
if (!SC.none(initialSubstate) && !matchedInitialSubstate) {
|
145
|
-
SC.Logger.error(
|
145
|
+
SC.Logger.error("Unable to set initial substate %@ since it did not match any of state\'s %@ substates", initialSubstate, this);
|
146
146
|
}
|
147
147
|
|
148
148
|
this.set('substates', substates);
|
@@ -150,18 +150,18 @@ SC.State = SC.Object.extend({
|
|
150
150
|
|
151
151
|
if (substates.length === 0) {
|
152
152
|
if (!SC.none(initialSubstate)) {
|
153
|
-
SC.Logger.warn(
|
153
|
+
SC.Logger.warn("Unable to make %@ an initial substate since state %@ has no substates", initialSubstate, this);
|
154
154
|
}
|
155
155
|
}
|
156
156
|
else if (substates.length > 0) {
|
157
157
|
if (SC.none(initialSubstate) && !substatesAreConcurrent) {
|
158
158
|
state = substates[0];
|
159
159
|
this.set('initialSubstate', state);
|
160
|
-
SC.Logger.warn(
|
160
|
+
SC.Logger.warn("state %@ has no initial substate defined. Will default to using %@ as initial substate", this, state);
|
161
161
|
}
|
162
162
|
else if (!SC.none(initialSubstate) && substatesAreConcurrent) {
|
163
163
|
this.set('initialSubstate', null);
|
164
|
-
SC.Logger.warn(
|
164
|
+
SC.Logger.warn("Cannot use %@ as initial substate since substates are all concurrent for state %@", initialSubstate, this);
|
165
165
|
}
|
166
166
|
}
|
167
167
|
|
@@ -212,7 +212,7 @@ SC.State = SC.Object.extend({
|
|
212
212
|
continue;
|
213
213
|
}
|
214
214
|
|
215
|
-
SC.Logger.error("Invalid event %@ for event handler %@ in state %@"
|
215
|
+
SC.Logger.error("Invalid event %@ for event handler %@ in state %@", event, name, this);
|
216
216
|
}
|
217
217
|
},
|
218
218
|
|
@@ -275,7 +275,7 @@ SC.State = SC.Object.extend({
|
|
275
275
|
}
|
276
276
|
|
277
277
|
if (parent !== state && state !== this) {
|
278
|
-
SC.Logger.error(
|
278
|
+
SC.Logger.error("Cannot generate relative path from %@ since it not a parent state of %@", state, this);
|
279
279
|
return null;
|
280
280
|
}
|
281
281
|
|
@@ -306,7 +306,7 @@ SC.State = SC.Object.extend({
|
|
306
306
|
}
|
307
307
|
|
308
308
|
if (valueType !== SC.T_STRING) {
|
309
|
-
SC.Logger.error("
|
309
|
+
SC.Logger.error("Cannot find matching subtype. value must be an object or string: %@", value);
|
310
310
|
return null;
|
311
311
|
}
|
312
312
|
|
@@ -332,8 +332,8 @@ SC.State = SC.Object.extend({
|
|
332
332
|
if (matches[1] === "") {
|
333
333
|
if (paths.__ki_paths__.length === 1) return paths[paths.__ki_paths__[0]];
|
334
334
|
if (paths.__ki_paths__.length > 1) {
|
335
|
-
var msg = '
|
336
|
-
SC.Logger.error(msg
|
335
|
+
var msg = 'Cannot find substate matching %@ in state %@. Ambiguous with the following: %@';
|
336
|
+
SC.Logger.error(msg, value, this, paths.__ki_paths__);
|
337
337
|
}
|
338
338
|
}
|
339
339
|
|
@@ -458,7 +458,7 @@ SC.State = SC.Object.extend({
|
|
458
458
|
if (this.get('isCurrentState')) {
|
459
459
|
statechart.gotoState(this);
|
460
460
|
} else {
|
461
|
-
SC.Logger.error(
|
461
|
+
SC.Logger.error("Cannot re-enter state %@ since it is not a current state in the statechart", this);
|
462
462
|
}
|
463
463
|
},
|
464
464
|
|
@@ -515,7 +515,7 @@ SC.State = SC.Object.extend({
|
|
515
515
|
// First check if the name of the event is the same as a registered event handler. If so,
|
516
516
|
// then do not handle the event.
|
517
517
|
if (this._registeredEventHandlers[event]) {
|
518
|
-
SC.Logger.warn("state %@ can not handle event %@ since it is a registered event handler"
|
518
|
+
SC.Logger.warn("state %@ can not handle event %@ since it is a registered event handler", this, event);
|
519
519
|
return NO;
|
520
520
|
}
|
521
521
|
|
@@ -130,6 +130,16 @@ CoreTest.Runner = {
|
|
130
130
|
result.html(str);
|
131
131
|
|
132
132
|
if (this.errors) CoreTest.errors=this.errors.join('');
|
133
|
+
|
134
|
+
|
135
|
+
// Unload the SproutCore event system so that the user can select the text
|
136
|
+
// of the various events. (It is handy when looking at failed tests.)
|
137
|
+
if (SC && SC.Event && SC.Event.unload) {
|
138
|
+
try {
|
139
|
+
SC.Event.unload();
|
140
|
+
}
|
141
|
+
catch (e) {}
|
142
|
+
}
|
133
143
|
},
|
134
144
|
|
135
145
|
planDidRecord: function(plan, module, test, assertions, timings) {
|
@@ -35,14 +35,36 @@
|
|
35
35
|
-%>
|
36
36
|
<%= bootstrap %>
|
37
37
|
|
38
|
-
<% #
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
-%>
|
44
|
-
|
45
|
-
|
38
|
+
<% #
|
39
|
+
# This line should appear in your head area to include the stylesheets
|
40
|
+
# generated by your client. If you need to include your own
|
41
|
+
# stylesheets, you don't need to change it here. Instead use the
|
42
|
+
# required option in your config.
|
43
|
+
-%>
|
44
|
+
|
45
|
+
<script>
|
46
|
+
(function() {
|
47
|
+
var styles = [];
|
48
|
+
if (window.devicePixelRatio == 2 || window.location.search.indexOf("2x") > -1) {
|
49
|
+
styles = <%= stylesheet_urls_for_client(nil, { :x2 => true }).to_json %>;
|
50
|
+
} else {
|
51
|
+
styles = <%= stylesheet_urls_for_client.to_json %>;
|
52
|
+
}
|
53
|
+
|
54
|
+
var head = document.getElementsByTagName("head")[0];
|
55
|
+
var len = styles.length, idx;
|
56
|
+
for (idx = 0; idx < len; idx++) {
|
57
|
+
var css = document.createElement('link');
|
58
|
+
css.rel = 'stylesheet';
|
59
|
+
css.type = 'text/css';
|
60
|
+
css.href = styles[idx];
|
61
|
+
css.media = 'screen'
|
62
|
+
head.appendChild(css);
|
63
|
+
}
|
64
|
+
})();
|
65
|
+
</script>
|
66
|
+
|
67
|
+
<%= @content_for_page_styles %>
|
46
68
|
<script>
|
47
69
|
SC.benchmarkPreloadEvents['headEnd'] = new Date().getTime();
|
48
70
|
</script>
|
@@ -43,7 +43,7 @@ $theme.sc-segment-view {
|
|
43
43
|
&.active {
|
44
44
|
.left { @include slice("segmented_active.png", $left: 100, $width: 8); }
|
45
45
|
.right { @include slice("segmented_active.png", $left: 92, $width: 8); }
|
46
|
-
.middle { @include slice("segmented_active.png", $left: 8, $width: 1); }
|
46
|
+
.middle { @include slice("segmented_active.png", $left: 8, $width: 1, $repeat: repeat-x); }
|
47
47
|
}
|
48
48
|
|
49
49
|
&.active.sc-first-segment {
|
@@ -59,7 +59,7 @@ $theme.sc-segment-view {
|
|
59
59
|
&.sel {
|
60
60
|
.left { @include slice("segmented_selected.png", $left: 100, $width: 8); }
|
61
61
|
.right { @include slice("segmented_selected.png", $left: 92, $width: 8); }
|
62
|
-
.middle { @include slice("segmented_selected.png", $left: 8, $width: 1); }
|
62
|
+
.middle { @include slice("segmented_selected.png", $left: 8, $width: 1, $repeat: repeat-x); }
|
63
63
|
}
|
64
64
|
|
65
65
|
&.sel.sc-first-segment {
|
@@ -75,7 +75,7 @@ $theme.sc-segment-view {
|
|
75
75
|
&.sel.active {
|
76
76
|
.left { @include slice("segmented_selected_active.png", $left: 100, $width: 8); }
|
77
77
|
.right { @include slice("segmented_selected_active.png", $left: 92, $width: 8); }
|
78
|
-
.middle { @include slice("segmented_selected_active.png", $left: 8, $width: 1); }
|
78
|
+
.middle { @include slice("segmented_selected_active.png", $left: 8, $width: 1, $repeat: repeat-x); }
|
79
79
|
}
|
80
80
|
|
81
81
|
&.sel.active.sc-first-segment {
|
@@ -88,4 +88,4 @@ $theme.sc-segment-view {
|
|
88
88
|
|
89
89
|
}
|
90
90
|
|
91
|
-
}
|
91
|
+
}
|