Files
StockMan/StockManMVC/bower_components/cldrjs/test/functional/event.js
T
2016-10-03 10:53:40 +02:00

220 lines
5.8 KiB
JavaScript

define([
"cldr",
"../util",
"json!cldr-data/supplemental/likelySubtags.json",
"cldr/event"
], function( Cldr, util, likelySubtagsJson ) {
Cldr.load( likelySubtagsJson );
[ "off", "on", "once" ].forEach(function( method ) {
describe( "Cldr." + method + "( event, listener )", function() {
it( "should throw error on missing event parameter", function() {
expect(function() {
Cldr[ method ]();
}).to.throw( Error, /E_MISSING_PARAMETER/ );
});
it( "should throw error on missing listener parameter", function() {
expect(function() {
Cldr[ method ]( "get" );
}).to.throw( Error, /E_MISSING_PARAMETER/ );
});
it( "should throw error on invalid event parameter type", function() {
util.assertEventParameter( expect, function( invalidValue ) {
return function() {
Cldr[ method ]( invalidValue, function() {} );
};
});
});
it( "should throw error on invalid listener parameter type", function() {
util.assertFunctionParameter( expect, function( invalidValue ) {
return function() {
Cldr[ method ]( "get", invalidValue );
};
});
});
});
});
describe( "Cldr.on( \"get\", listener )", function() {
it( "should add the listener to the global `get` event", function( done ) {
function listener() {
done();
}
var cldr = new Cldr( "root" );
Cldr.on( "get", listener );
cldr.get( "something" );
Cldr.off( "get", listener );
});
it( "should pass path and value to the listener", function( done ) {
function listener( path, value ) {
if ( path === "supplemental/likelySubtags/en" && value === "en-Latn-US" ) {
done();
}
}
var cldr = new Cldr( "root" );
Cldr.on( "get", listener );
cldr.get( "supplemental/likelySubtags/en" );
Cldr.off( "get", listener );
});
});
describe( "Cldr.off( \"get\", listener )", function() {
it( "should remove the specific listener from the global `get` event", function( done ) {
var status = new Error( "Also removed wrong listener `listener2`" );
function listener1() {
done( new Error( "should not listen `listener1`" ) );
}
function listener2() {
status = undefined; // Good.
}
var cldr = new Cldr( "root" );
Cldr.on( "get", listener1 );
Cldr.on( "get", listener2 );
Cldr.off( "get", listener1 );
cldr.get( "something" );
Cldr.off( "get", listener2 );
setTimeout(function() {
done( status );
});
});
});
describe( "Cldr.once( \"get\", listener )", function() {
it( "should add the listener to the global `get` event *once*", function( done ) {
var status = new Error( "Did not listen" );
function listener( path ) {
if ( path === "first" ) {
status = undefined; // Good.
} else if ( path === "second" ) {
status = new Error( "Listened twice" );
}
}
var cldr = new Cldr( "root" );
Cldr.once( "get", listener );
cldr.get( "first" );
cldr.get( "second" );
setTimeout(function() {
done( status );
});
});
it( "should pass path and value to the listener", function( done ) {
function listener( path, value ) {
if ( path === "supplemental/likelySubtags/en" && value === "en-Latn-US" ) {
done();
}
}
var cldr = new Cldr( "root" );
Cldr.once( "get", listener );
cldr.get( "supplemental/likelySubtags/en" );
});
});
describe( "cldr.on( \"get\", listener )", function() {
it( "should add the listener to the instance `get` event", function( done ) {
var status = new Error( "Did not listen" );
function listener( path ) {
if ( path === "something-from-cldr" ) {
status = undefined; // Good.
} else {
status = new Error( "Eavesdropping another instances" );
}
}
var cldr = new Cldr( "root" ),
another = new Cldr( "root" );
cldr.on( "get", listener );
cldr.get( "something-from-cldr" );
another.get( "something-from-another" );
cldr.off( "get", listener );
setTimeout(function() {
done( status );
});
});
it( "should pass path and value to the listener", function( done ) {
function listener( path, value ) {
if ( path === "supplemental/likelySubtags/en" && value === "en-Latn-US" ) {
done();
}
}
var cldr = new Cldr( "root" );
cldr.on( "get", listener );
cldr.get( "supplemental/likelySubtags/en" );
cldr.off( "get", listener );
});
});
describe( "cldr.off( \"get\", listener )", function() {
it( "should remove the specific listener from the instance `get` event", function( done ) {
var status = new Error( "Also removed wrong listener `listener2`" );
function listener1() {
done( new Error( "should not listen `listener1`" ) );
}
function listener2() {
status = undefined; // Good.
}
var cldr = new Cldr( "root" );
cldr.on( "get", listener1 );
cldr.on( "get", listener2 );
cldr.off( "get", listener1 );
cldr.get( "something" );
cldr.off( "get", listener2 );
setTimeout(function() {
done( status );
});
});
});
describe( "cldr.once( \"get\", listener )", function() {
it( "should add the listener to the instance `get` event *once*", function( done ) {
var status = new Error( "Did not listen" );
function listener( path ) {
if ( path === "first" ) {
status = undefined; // Good.
} else if ( path === "second" ) {
status = new Error( "Listened twice" );
}
}
var cldr = new Cldr( "root" );
cldr.once( "get", listener );
cldr.get( "first" );
cldr.get( "second" );
setTimeout(function() {
done( status );
});
});
it( "should pass path and value to the listener", function( done ) {
function listener( path, value ) {
if ( path === "supplemental/likelySubtags/en" && value === "en-Latn-US" ) {
done();
}
}
var cldr = new Cldr( "root" );
cldr.once( "get", listener );
cldr.get( "supplemental/likelySubtags/en" );
});
});
});