cache-plugin.html revision 83e9319a20f4ce0a534736d0a2b7edb21e486dc5
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly<script type="text/javascript" src="/build/yui/yui.js"></script>
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly<p><input type="button" value="Run Tests" id="btnRun" disabled=true></p>
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly filter: (window.location.search.match(/[?&]filter=([^&]+)/) || [])[1] || 'min',
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly allowRollup: false,
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly useBrowserConsole: false
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly }).use("console", "test", "dump", "widget", "cache", function(Y) {
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly // Set up the page
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly BTNRUN = Y.one("#btnRun");
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly BTNRUN.set("disabled", false);
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly Y.on("click", function(e){
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly var myConsole = new Y.Console().render(),
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly getWidget = function(config) {
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly return new Y.Widget().plug(Y.Plugin.Cache, config);
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly var testClass = new Y.Test.Case({
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly name: "Class Tests",
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly testDefaults: function() {
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly var myWidget = getWidget();
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly ASSERT.areSame("cache", Y.Plugin.Cache.NS, "Expected namespace.");
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly ASSERT.areSame("cachePlugin", Y.Plugin.Cache.NAME, "Expected name.");
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly ASSERT.isInstanceOf(Y.Cache, myWidget.cache, "Expected instance of Y.Cache.");
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly ASSERT.areSame(0, myWidget.cache.get("max"), "Expected default max of 0.");
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly ARRAYASSERT.isEmpty(myWidget.cache.get("entries"), "Expected empty array.");
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly methods: function() {
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly var myWidget = getWidget();
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly ASSERT.isFunction(myWidget.cache.add, "Expected method: add.");
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly ASSERT.isFunction(myWidget.cache.flush, "Expected method: flush.");
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly ASSERT.isFunction(myWidget.cache.retrieve, "Expected method: retrieve.");
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly testDestructor: function() {
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly var myWidget = getWidget();
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly ARRAYASSERT.isEmpty(myWidget.cache.get("entries"), "Expected empty array.");
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly var testEvents = new Y.Test.Case({
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly name: "Event Tests",
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly testAdd: function() {
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly var mock = new Y.Mock();
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly method: "handleAdd",
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly var cache = getWidget({max:2}).cache;
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly testFlush: function() {
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly var mock = new Y.Mock();
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly method: "handleFlush",
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly var cache = getWidget({max:2}).cache;
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly testRequest: function() {
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly var mock = new Y.Mock();
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly method: "handleRequest",
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly args: [Y.Mock.Value(function(e){
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly ASSERT.areSame(2, e.request, "Expected request.");
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly var cache = getWidget({max:2}).cache;
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly testRetrieveSuccess: function() {
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly var mock = new Y.Mock();
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly method: "handleRetrieve",
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly args: [Y.Mock.Value(function(e){
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly var cache = getWidget({max:2}).cache;
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly testRetrieveFailure: function() {
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly var mock = new Y.Mock();
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly method: "handleRetrieve",
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly var cache = getWidget({max:2}).cache;
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly testCancelAdd: function() {
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly var cache = getWidget({max:2}).cache;
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly cache.on("add", function(e) {
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly }, this, true);
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly // Test the cancel
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly ASSERT.areSame(0, cache.get("size"), "Expected 0 entries.");
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly testCancelFlush: function() {
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly var cache = getWidget({max:2}).cache;
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly cache.on("flush", function(e) {
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly }, this, true);
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly // Test the cancel
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly ASSERT.areSame(1, cache.get("size"), "Expected 1 entry.");
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly var suite = new Y.Test.Suite({name:"Plugin.Cache Test Suite"});