oop.html revision bd4e7bf54bb629b039ba9e22ba57cf09cddce482
ba2328a2983042c5fed38cfe42b67ec9ea3fb588Adam Moore<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
ba2328a2983042c5fed38cfe42b67ec9ea3fb588Adam Moore<p><input type="button" value="Run Tests" id="btnRun" disabled="true" /></p>
ba2328a2983042c5fed38cfe42b67ec9ea3fb588Adam Moore<script type="text/javascript" src="/build/yui/yui.js"></script>
ba2328a2983042c5fed38cfe42b67ec9ea3fb588Adam Moore(function() {
ba2328a2983042c5fed38cfe42b67ec9ea3fb588Adam Moore filter: "debug",
ba2328a2983042c5fed38cfe42b67ec9ea3fb588Adam Moore useConsole: true,
ba2328a2983042c5fed38cfe42b67ec9ea3fb588Adam Moore // logInclude: ['event', 'test']
ba2328a2983042c5fed38cfe42b67ec9ea3fb588Adam Moore //logExclude: ['Dom', 'Selector', 'Node', 'attribute']
ba2328a2983042c5fed38cfe42b67ec9ea3fb588Adam Moore logExclude: {Dom:true,
ba2328a2983042c5fed38cfe42b67ec9ea3fb588Adam Moore Selector:true, Node:true, attribute:true, event:true, base:true}
ba2328a2983042c5fed38cfe42b67ec9ea3fb588Adam Moore }).use("dump", "test", "console", "event-custom", function(Y) {
bd4e7bf54bb629b039ba9e22ba57cf09cddce482Adam Moore var button = Y.get('#btnRun'),
bd4e7bf54bb629b039ba9e22ba57cf09cddce482Adam Moore ObjectAssert = Y.ObjectAssert;
ba2328a2983042c5fed38cfe42b67ec9ea3fb588Adam Moore // Set up the page
ba2328a2983042c5fed38cfe42b67ec9ea3fb588Adam Moore button.set("disabled", false);
ba2328a2983042c5fed38cfe42b67ec9ea3fb588Adam Moore Y.on("click", function() {
ba2328a2983042c5fed38cfe42b67ec9ea3fb588Adam Moore var myConsole = new Y.Console().render();
ba2328a2983042c5fed38cfe42b67ec9ea3fb588Adam Moore var testOOP= new Y.Test.Case({
ba2328a2983042c5fed38cfe42b67ec9ea3fb588Adam Moore name: "OOP tests",
ba2328a2983042c5fed38cfe42b67ec9ea3fb588Adam Moore testExtend: function() {
ba2328a2983042c5fed38cfe42b67ec9ea3fb588Adam Moore var firedbase = false;
ba2328a2983042c5fed38cfe42b67ec9ea3fb588Adam Moore var firedextended = false;
ba2328a2983042c5fed38cfe42b67ec9ea3fb588Adam Moore var Base = function() {
ba2328a2983042c5fed38cfe42b67ec9ea3fb588Adam Moore Y.log('Base constructor executed');
ba2328a2983042c5fed38cfe42b67ec9ea3fb588Adam Moore arguments.callee.superclass.constructor.apply(this, arguments);
d3c498b6d1138f87eedc0a1a4fb0f21ac713cba5Adam Moore // bind by string in order to allow the subclass
ba2328a2983042c5fed38cfe42b67ec9ea3fb588Adam Moore base: function() {
ba2328a2983042c5fed38cfe42b67ec9ea3fb588Adam Moore Y.log('base function');
ba2328a2983042c5fed38cfe42b67ec9ea3fb588Adam Moore firedbase = true;
ba2328a2983042c5fed38cfe42b67ec9ea3fb588Adam Moore var Extended = function() {
ba2328a2983042c5fed38cfe42b67ec9ea3fb588Adam Moore Y.log('Extended constructor executed');
ba2328a2983042c5fed38cfe42b67ec9ea3fb588Adam Moore arguments.callee.superclass.constructor.apply(this, arguments);
ba2328a2983042c5fed38cfe42b67ec9ea3fb588Adam Moore Y.extend(Extended, Base, {
ba2328a2983042c5fed38cfe42b67ec9ea3fb588Adam Moore base: function() {
ba2328a2983042c5fed38cfe42b67ec9ea3fb588Adam Moore Y.log('extended function');
ba2328a2983042c5fed38cfe42b67ec9ea3fb588Adam Moore firedextended = true;
ba2328a2983042c5fed38cfe42b67ec9ea3fb588Adam Moore var b = new Extended();
ba2328a2983042c5fed38cfe42b67ec9ea3fb588Adam Moore b.fire('testStringFn', 1, 2);
ba2328a2983042c5fed38cfe42b67ec9ea3fb588Adam Moore Y.Assert.isTrue(firedextended);
bd4e7bf54bb629b039ba9e22ba57cf09cddce482Adam Moore test_merge: function() {
bd4e7bf54bb629b039ba9e22ba57cf09cddce482Adam Moore var o1 = { one: "one" },
bd4e7bf54bb629b039ba9e22ba57cf09cddce482Adam Moore o2 = { two: "two" },
bd4e7bf54bb629b039ba9e22ba57cf09cddce482Adam Moore o3 = { two: "twofromthree", three: "three" },
bd4e7bf54bb629b039ba9e22ba57cf09cddce482Adam Moore o4 = { one: "one", two: "twofromthree", three: "three" },
bd4e7bf54bb629b039ba9e22ba57cf09cddce482Adam Moore o123 = Y.merge(o1, o2, o3);
bd4e7bf54bb629b039ba9e22ba57cf09cddce482Adam Moore test_mix: function() {
bd4e7bf54bb629b039ba9e22ba57cf09cddce482Adam Moore 'bool' : false,
bd4e7bf54bb629b039ba9e22ba57cf09cddce482Adam Moore 'nul' : null,
bd4e7bf54bb629b039ba9e22ba57cf09cddce482Adam Moore 'undef': undefined,
bd4e7bf54bb629b039ba9e22ba57cf09cddce482Adam Moore 'T' : 'blabber'
bd4e7bf54bb629b039ba9e22ba57cf09cddce482Adam Moore 'bool' : 'oops',
bd4e7bf54bb629b039ba9e22ba57cf09cddce482Adam Moore 'num' : 'oops',
bd4e7bf54bb629b039ba9e22ba57cf09cddce482Adam Moore 'nul' : 'oops',
bd4e7bf54bb629b039ba9e22ba57cf09cddce482Adam Moore 'undef': 'oops',
bd4e7bf54bb629b039ba9e22ba57cf09cddce482Adam Moore 'T' : 'oops'
bd4e7bf54bb629b039ba9e22ba57cf09cddce482Adam Moore Y.mix(a, b, false);
bd4e7bf54bb629b039ba9e22ba57cf09cddce482Adam Moore Y.mix(a, b, true);