test-console.js revision 10b29d99683d0782b9f9ccbfc2a38afe7288c4d6
4610465ed9408cbe434dbfb8be8ea53f48969c91Bob Halley/**
f2016fcecf098726740507a5522dca04c49aeb82Tinderbox UserProvides a specialized log console widget that's pre-configured to display YUI
75c0816e8295e180f4bc7f10db3d0d880383bc1cMark AndrewsTest output with no extra configuration.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
4a14ce5ba00ab7bc55c99ffdcf59c7a4ab902721Automatic Updater@example
4610465ed9408cbe434dbfb8be8ea53f48969c91Bob Halley
4610465ed9408cbe434dbfb8be8ea53f48969c91Bob Halley <div id="log" class="yui3-skin-sam"></div>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews <script>
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews YUI().use('test-console', function (Y) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein // ... set up your test cases here ...
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews // Render the console inside the #log div, then run the tests.
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews new Y.Test.Console().render('#log');
8a66318e41ed14c5a88130e8c362610e8faa2121Mark Andrews Y.Test.Runner.run();
4610465ed9408cbe434dbfb8be8ea53f48969c91Bob Halley });
ea94d370123a5892f6c47a97f21d1b28d44bb168Tinderbox User </script>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein@module test-console
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein@namespace Test
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein@class Console
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews@extends Console
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein@constructor
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews@param {Object} [config] Config attributes.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein @param {Object} [config.filters] Category filter configuration.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein@since 3.5.0
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein**/
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinfunction TestConsole() {
0f52ea95d861c237da324aa0c009638298069ec0Tinderbox User TestConsole.superclass.constructor.apply(this, arguments);
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein}
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
d3ddafd7469d1f3430ccd1b0fe0d13ccbbaf5debTinderbox UserY.namespace('Test').Console = Y.extend(TestConsole, Y.Console, {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein initializer: function (config) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein this.on('entry', this._onEntry);
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein this.plug(Y.Plugin.ConsoleFilters, {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein category: Y.merge({
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein info : true,
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein pass : false,
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein fail : true,
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein status: false
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein }, (config && config.filters) || {})
b2f07642fd712c8fda81a116bcdde229ab291f33Tinderbox User });
b2f07642fd712c8fda81a116bcdde229ab291f33Tinderbox User },
b2f07642fd712c8fda81a116bcdde229ab291f33Tinderbox User
c247e3f281613fabe1af362e9f3157e35ebbe52cMark Andrews // -- Protected Event Handlers ---------------------------------------------
b2f07642fd712c8fda81a116bcdde229ab291f33Tinderbox User _onEntry: function (e) {
b2f07642fd712c8fda81a116bcdde229ab291f33Tinderbox User var msg = e.message;
b2f07642fd712c8fda81a116bcdde229ab291f33Tinderbox User
b2f07642fd712c8fda81a116bcdde229ab291f33Tinderbox User if (msg.category === 'info'
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein && /\s(?:case|suite)\s|yuitests\d+|began/.test(msg.message)) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein msg.category = 'status';
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein } else if (msg.category === 'fail') {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein this.printBuffer();
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein }
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein }
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein}, {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein NAME: 'testConsole',
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein ATTRS: {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein entryTemplate: {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein value:
d3ddafd7469d1f3430ccd1b0fe0d13ccbbaf5debTinderbox User '<div class="{entry_class} {cat_class} {src_class}">' +
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein '<div class="{entry_content_class}">{message}</div>' +
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein '</div>'
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein },
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein height: {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein value: '350px'
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein },
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein newestOnTop: {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein value: false
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein },
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein style: {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein value: 'block'
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein },
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein width: {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein value: Y.UA.ie && Y.UA.ie < 9 ? '100%' : 'inherit'
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein }
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein }
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein});
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein