cache.html revision 223638e682f15a739e9c7f070209e3bba09544f9
0N/A<html>
0N/A<head>
0N/A<title>Cache Tests</title>
0N/A</head>
0N/A
0N/A<body class="yui-skin-sam">
0N/A<h1>Cache Tests</h1>
0N/A<p><input type="button" value="Run Tests" id="btnRun" disabled=true></p>
0N/A
0N/A<script type="text/javascript" src="/build/yui/yui.js"></script>
0N/A<script type="text/javascript" src="/build/cache/cache-debug.js" id="buildsrc"></script>
0N/A<script type="text/javascript">
0N/A
0N/A(function() {
0N/A YUI({
0N/A base: "/build/",
0N/A //filter: "debug",
0N/A useConsole: true,
0N/A insertBefore: "buildsrc"
0N/A }).use("console", "test", "dump", "cache", function(Y) {
0N/A
0N/A // Set up the page
0N/A var ASSERT = Y.Assert,
0N/A ARRAYASSERT = Y.ArrayAssert,
0N/A BTNRUN = Y.get("#btnRun");
0N/A BTNRUN.set("disabled", false);
0N/A Y.on("click", function(){
0N/A Y.Test.Runner.run();
0N/A }, BTNRUN);
0N/A var myConsole = new Y.Console().render();
0N/A
0N/A
0N/A var testClass = new Y.Test.Case({
0N/A name: "Class Tests",
0N/A
0N/A testDefaults: function() {
0N/A var cache = new Y.Cache();
0N/A cache.add(1, "a");
0N/A ASSERT.isInstanceOf(Y.Cache, cache, "Expected instance of Y.Cache.");
0N/A ASSERT.areSame(0, cache.get("size"), "Expected default size of 0.");
0N/A ARRAYASSERT.isEmpty(cache.getEntries(), "Expected empty array.");
0N/A },
0N/A
0N/A testDestructor: function() {
0N/A var cache = new Y.Cache();
0N/A cache.destroy();
0N/A ASSERT.isNull(cache.getEntries(), "Expected null array.");
0N/A }
0N/A });
0N/A
0N/A var testBasic = new Y.Test.Case({
0N/A name: "Basic Tests",
0N/A
0N/A testsize0: function() {
0N/A var cache = new Y.Cache();
0N/A ASSERT.areSame(0, cache.get("size"), "Expected size to be 0.");
0N/A
0N/A cache.add(1, "a");
0N/A ASSERT.areSame(0, cache.getEntries().length, "Expected 0 entries.");
0N/A ASSERT.isNull(cache.retrieve(1), "Expected null cached response.");
0N/A },
0N/A
0N/A testsize2: function() {
0N/A var cache = new Y.Cache({size:2});
0N/A ASSERT.areSame(2, cache.get("size"), "Expected size to be 2.");
0N/A
0N/A cache.add(1, "a");
0N/A ASSERT.areSame(1, cache.getEntries().length, "Expected 1 entry.");
0N/A cache.add(2, "b");
0N/A ASSERT.areSame(2, cache.getEntries().length, "Expected 2 entries.");
0N/A cache.add(3, "c");
0N/A ASSERT.areSame(2, cache.getEntries().length, "Expected 2 entries (still).");
0N/A },
0N/A
0N/A testsize2to1: function() {
0N/A var cache = new Y.Cache({size:2});
0N/A cache.add(1, "a");
0N/A cache.add(2, "b");
0N/A cache.set("size", 1);
0N/A ASSERT.areSame(1, cache.getEntries().length, "Expected 1 entry.");
0N/A
0N/A cache.add(3, "c");
0N/A ASSERT.areSame(1, cache.getEntries().length, "Expected 1 entry (still).");
0N/A },
0N/A
0N/A testsize2to0: function() {
0N/A var cache = new Y.Cache({size:2});
0N/A cache.add(1, "a");
0N/A cache.add(2, "b");
0N/A cache.set("size", 0);
0N/A ARRAYASSERT.isEmpty(cache.getEntries(), "Expected empty array.");
0N/A cache.add(3, "c");
0N/A ARRAYASSERT.isEmpty(cache.getEntries(), "Expected empty array (still).");
0N/A },
0N/A
testRetrieve: function() {
var cache = new Y.Cache({size:2}),
cachedresponse;
cache.add(1, "a");
cache.add(2, "b");
cachedresponse = cache.retrieve(1).response;
ASSERT.areSame("a", cachedresponse, "Expected first cached response.");
cachedresponse = cache.retrieve(2).response;
ASSERT.areSame("b", cachedresponse, "Expected second cached response.");
},
testFlush: function() {
var cache = new Y.Cache({size:2});
cache.add(1, "a");
cache.add(2, "b");
cache.flush();
ASSERT.areSame(0, cache.getEntries().length, "Expected empty cache.");
}
});
var testEntryManagement = new Y.Test.Case({
name: "Entry Management Tests",
testAllowDuplicateEntries: function() {
var cache = new Y.Cache({size:3});
cache.add(1, "a");
cache.add(2, "b");
cache.add(1, "a");
ASSERT.areSame(3, cache.getEntries().length, "Expected 3 entries.");
},
testFreshness: function() {
var cache = new Y.Cache({size:3});
cache.add(1, "a");
cache.add(2, "b");
cache.add(3, "c");
cache.retrieve(1);
ASSERT.areSame(3, cache.getEntries().length, "Expected 3 entries.");
ASSERT.areSame(1, cache.getEntries()[2].request, "Expected entry to be refreshed.");
},
testPayload: function() {
//TODO
}
});
Y.Test.Runner.add(testClass);
Y.Test.Runner.add(testBasic);
Y.Test.Runner.add(testEntryManagement);
Y.Test.Runner.run();
});
})();
</script>
</body>
</html>