10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove/**
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan GroveProvides a specialized log console widget that's pre-configured to display YUI
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan GroveTest output with no extra configuration.
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove@example
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove <div id="log" class="yui3-skin-sam"></div>
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove <script>
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove YUI().use('test-console', function (Y) {
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove // ... set up your test cases here ...
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove // Render the console inside the #log div, then run the tests.
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove new Y.Test.Console().render('#log');
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove Y.Test.Runner.run();
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove });
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove </script>
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove@module test-console
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove@namespace Test
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove@class Console
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove@extends Console
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove@constructor
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove@param {Object} [config] Config attributes.
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove @param {Object} [config.filters] Category filter configuration.
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove@since 3.5.0
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove**/
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grovefunction TestConsole() {
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove TestConsole.superclass.constructor.apply(this, arguments);
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove}
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan GroveY.namespace('Test').Console = Y.extend(TestConsole, Y.Console, {
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove initializer: function (config) {
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove this.on('entry', this._onEntry);
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove this.plug(Y.Plugin.ConsoleFilters, {
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove category: Y.merge({
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove info : true,
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove pass : false,
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove fail : true,
8643ad440c0ac4db0875f2f6ace97b9ecdaae3e9Matt Sweeney status: false
d05a15f927f57b215059ca30fed90b4ce8cffc2dRyan Grove }, (config && config.filters) || {}),
d05a15f927f57b215059ca30fed90b4ce8cffc2dRyan Grove
d05a15f927f57b215059ca30fed90b4ce8cffc2dRyan Grove defaultVisibility: false,
d05a15f927f57b215059ca30fed90b4ce8cffc2dRyan Grove
d05a15f927f57b215059ca30fed90b4ce8cffc2dRyan Grove source: {
d05a15f927f57b215059ca30fed90b4ce8cffc2dRyan Grove TestRunner: true
d05a15f927f57b215059ca30fed90b4ce8cffc2dRyan Grove }
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove });
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove },
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove // -- Protected Event Handlers ---------------------------------------------
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove _onEntry: function (e) {
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove var msg = e.message;
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove if (msg.category === 'info'
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove && /\s(?:case|suite)\s|yuitests\d+|began/.test(msg.message)) {
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove msg.category = 'status';
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove } else if (msg.category === 'fail') {
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove this.printBuffer();
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove }
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove }
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove}, {
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove NAME: 'testConsole',
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove ATTRS: {
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove entryTemplate: {
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove value:
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove '<div class="{entry_class} {cat_class} {src_class}">' +
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove '<div class="{entry_content_class}">{message}</div>' +
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove '</div>'
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove },
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove height: {
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove value: '350px'
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove },
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove newestOnTop: {
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove value: false
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove },
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove style: {
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove value: 'block'
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove },
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove width: {
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove value: Y.UA.ie && Y.UA.ie < 9 ? '100%' : 'inherit'
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove }
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove }
10b29d99683d0782b9f9ccbfc2a38afe7288c4d6Ryan Grove});