cache.html revision 6da8c70b8b366ef387914ebf8f3c4d44d4cec955
ec5347e2c775f027573ce5648b910361aa926c01Automatic Updater<p><input type="button" value="Run Tests" id="btnRun" disabled=true></p>
d4ef65050feac78554addf6e16a06c6e2e0bd331Brian Wellington<script type="text/javascript" src="/build/yui/yui.js"></script>
d4ef65050feac78554addf6e16a06c6e2e0bd331Brian Wellington<script type="text/javascript" src="/build/cache/cache-debug.js" id="buildsrc"></script>
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews(function() {
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews filter: "debug",
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews useConsole: true,
d4ef65050feac78554addf6e16a06c6e2e0bd331Brian Wellington insertBefore: "buildsrc"
f5d30e2864e048a42c4dc1134993ae7efdb5d6c3Mark Andrews }).use("console", "test", "dump", "cache", function(Y) {
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington // Set up the page
1753d3c4d74241a847794f7e7cfd94cc79be6600Evan Hunt var ASSERT = Y.Assert,
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington BTNRUN = Y.get("#btnRun");
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington BTNRUN.set("disabled", false);
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington Y.on("click", function(){
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington var myConsole = new Y.Console().render();
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington var testClass = new Y.Test.Case({
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington name: "Class Tests",
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington testDefaults: function() {
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein var cache = new Y.Cache();
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein ASSERT.isInstanceOf(Y.Cache, cache, "Expected instance of Y.Cache.");
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein ASSERT.areSame(0, cache.get("size"), "Expected default size of 0.");
c1a883f2e04d94e99c433b1f6cfd0c0338f4ed85Mark Andrews ARRAYASSERT.isEmpty(cache.getEntries(), "Expected empty array.");
f428e385a4f7a42196b53de8e134909e8c488258Automatic Updater testDestructor: function() {
207cee019eb5cbbe7c905f7c52f7b5d11f8c0305Automatic Updater var cache = new Y.Cache();
6ea2385360e9e2167e65f9286447da9eea189457Tinderbox User ASSERT.isNull(cache.getEntries(), "Expected null array.");
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein var testBasic = new Y.Test.Case({
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein name: "Basic Tests",
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein testsize0: function() {
f5d30e2864e048a42c4dc1134993ae7efdb5d6c3Mark Andrews var cache = new Y.Cache();
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein ASSERT.areSame(0, cache.get("size"), "Expected size to be 0.");
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington ASSERT.areSame(0, cache.getEntries().length, "Expected 0 entries.");
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington ASSERT.isNull(cache.retrieve(1), "Expected null cached response.");
b272d38cc5d24f64c0647a9afb340c21c4b9aaf7Evan Hunt testsize2: function() {
b272d38cc5d24f64c0647a9afb340c21c4b9aaf7Evan Hunt var cache = new Y.Cache({size:2});
553ead32ff5b00284e574dcabc39115d4d74ec66Evan Hunt ASSERT.areSame(2, cache.get("size"), "Expected size to be 2.");
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington ASSERT.areSame(1, cache.getEntries().length, "Expected 1 entry.");
8b78c993cb475cc94e88560941b28c37684789d9Francis Dupont ASSERT.areSame(2, cache.getEntries().length, "Expected 2 entries.");
b843f577bbcd6660fbaa506d9e55b156c689a5a8Evan Hunt ASSERT.areSame(2, cache.getEntries().length, "Expected 2 entries (still).");
b843f577bbcd6660fbaa506d9e55b156c689a5a8Evan Hunt testsize2to1: function() {
c6f4972c745f8903aba6dcca41f17a44c473db66Mark Andrews var cache = new Y.Cache({size:2});
553ead32ff5b00284e574dcabc39115d4d74ec66Evan Hunt ASSERT.areSame(1, cache.getEntries().length, "Expected 1 entry.");
553ead32ff5b00284e574dcabc39115d4d74ec66Evan Hunt ASSERT.areSame(1, cache.getEntries().length, "Expected 1 entry (still).");
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington testsize2to0: function() {
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington var cache = new Y.Cache({size:2});
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington ARRAYASSERT.isEmpty(cache.getEntries(), "Expected empty array.");
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington ARRAYASSERT.isEmpty(cache.getEntries(), "Expected empty array (still).");
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington testRetrieve: function() {
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein var cache = new Y.Cache({size:2}),
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein cachedresponse;
553ead32ff5b00284e574dcabc39115d4d74ec66Evan Hunt cachedresponse = cache.retrieve(1).response;
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington ASSERT.areSame("a", cachedresponse, "Expected first cached response.");
41eeb37b516d1bac073781b6ec50a39a669987dfEvan Hunt cachedresponse = cache.retrieve(2).response;
41eeb37b516d1bac073781b6ec50a39a669987dfEvan Hunt ASSERT.areSame("b", cachedresponse, "Expected second cached response.");
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington testFlush: function() {
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington var cache = new Y.Cache({size:2});
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington ASSERT.areSame(0, cache.getEntries().length, "Expected empty cache.");
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein var testEntryManagement = new Y.Test.Case({
553ead32ff5b00284e574dcabc39115d4d74ec66Evan Hunt name: "Entry Management Tests",
aaaf8d4f4873d21e55c3ffb4f656203d08339865Mark Andrews testAllowDuplicateEntries: function() {
aaaf8d4f4873d21e55c3ffb4f656203d08339865Mark Andrews var cache = new Y.Cache({size:3});
553ead32ff5b00284e574dcabc39115d4d74ec66Evan Hunt ASSERT.areSame(3, cache.getEntries().length, "Expected 3 entries.");
553ead32ff5b00284e574dcabc39115d4d74ec66Evan Hunt testFreshness: function() {
553ead32ff5b00284e574dcabc39115d4d74ec66Evan Hunt var cache = new Y.Cache({size:3});
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein ASSERT.areSame(3, cache.getEntries().length, "Expected 3 entries.");
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein ASSERT.areSame(1, cache.getEntries()[2].request, "Expected entry to be refreshed.");
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein testPayload: function() {
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington Y.Test.Runner.add(testEntryManagement);