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<html>
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly<head>
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly<title>Cache Tests</title>
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly<script type="text/javascript" src="/build/yui/yui.js"></script>
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly</head>
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly<body class="yui3-skin-sam">
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly<h1>Cache Tests</h1>
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly<p><input type="button" value="Run Tests" id="btnRun" disabled=true></p>
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly<script type="text/javascript">
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly(function() {
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly YUI({
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
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly // Set up the page
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly var ASSERT = Y.Assert,
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly ARRAYASSERT = Y.ArrayAssert,
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly BTNRUN = Y.one("#btnRun");
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly BTNRUN.set("disabled", false);
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly Y.on("click", function(e){
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly Y.Test.Runner.run();
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly }, BTNRUN);
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 };
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly var testClass = new Y.Test.Case({
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly name: "Class Tests",
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly
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 },
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly
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 },
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly testDestructor: function() {
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly var myWidget = getWidget();
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly myWidget.cache.destroy();
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly ARRAYASSERT.isEmpty(myWidget.cache.get("entries"), "Expected empty array.");
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly }
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly });
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly var testEvents = new Y.Test.Case({
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly name: "Event Tests",
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly testAdd: function() {
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly var mock = new Y.Mock();
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly Y.Mock.expect(mock, {
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly method: "handleAdd",
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly args: [Y.Mock.Value.Object]
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly });
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly var cache = getWidget({max:2}).cache;
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly cache.on("add", mock.handleAdd);
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly cache.add(1, "a");
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly Y.Mock.verify(mock);
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly },
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly testFlush: function() {
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly var mock = new Y.Mock();
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly Y.Mock.expect(mock, {
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly method: "handleFlush",
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly args: [Y.Mock.Value.Object]
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly });
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly var cache = getWidget({max:2}).cache;
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly cache.on("flush", mock.handleFlush);
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly cache.add(1, "a");
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly cache.flush();
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly Y.Mock.verify(mock);
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly },
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly testRequest: function() {
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly var mock = new Y.Mock();
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly Y.Mock.expect(mock, {
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly method: "handleRequest",
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly args: [Y.Mock.Value(function(e){
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly ASSERT.areSame(2, e.request, "Expected request.");
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly })]
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly });
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly var cache = getWidget({max:2}).cache;
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly cache.on("request", mock.handleRequest);
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly cache.add(1, "a");
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly cache.retrieve(2);
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly Y.Mock.verify(mock);
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly },
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly testRetrieveSuccess: function() {
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly var mock = new Y.Mock();
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly Y.Mock.expect(mock, {
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly method: "handleRetrieve",
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly args: [Y.Mock.Value(function(e){
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly ASSERT.areSame(1, e.entry.request);
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly ASSERT.areSame("a", e.entry.response);
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly })]
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly });
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly var cache = getWidget({max:2}).cache;
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly cache.on("retrieve", mock.handleRetrieve);
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly cache.add(1, "a");
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly cache.retrieve(1);
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly Y.Mock.verify(mock);
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly },
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly testRetrieveFailure: function() {
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly var mock = new Y.Mock();
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly Y.Mock.expect(mock, {
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly method: "handleRetrieve",
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly args: [Y.Mock.Value.Any],
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly callCount: 0
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly });
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly var cache = getWidget({max:2}).cache;
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly cache.on("retrieve", mock.handleRetrieve);
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly cache.add(1, "a");
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly cache.retrieve(2);
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly Y.Mock.verify(mock);
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly },
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly testCancelAdd: function() {
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly var cache = getWidget({max:2}).cache;
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly cache.on("add", function(e) {
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly e.preventDefault();
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly }, this, true);
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly cache.add(1, "a");
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly // Test the cancel
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly ASSERT.areSame(0, cache.get("size"), "Expected 0 entries.");
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly },
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly testCancelFlush: function() {
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly var cache = getWidget({max:2}).cache;
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly cache.on("flush", function(e) {
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly e.preventDefault();
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly }, this, true);
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly cache.add(1, "a");
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly cache.flush();
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly // Test the cancel
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly ASSERT.areSame(1, cache.get("size"), "Expected 1 entry.");
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly }
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly });
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly var suite = new Y.Test.Suite({name:"Plugin.Cache Test Suite"});
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly suite.add(testClass);
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly suite.add(testEvents);
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly Y.Test.Runner.setName("Plutin.Cache Test Runner");
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly Y.Test.Runner.add(suite);
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly Y.Test.Runner.run();
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly });
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly})();
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly</script>
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly</body>
83e9319a20f4ce0a534736d0a2b7edb21e486dc5Jenny Donnelly</html>