/* global context testDone:true */

var name = "putreorder" + context;
var c;

var reqs = [
  "//mochi.test:8888/?foo" + context,
  "//mochi.test:8888/?bar" + context,
  "//mochi.test:8888/?baz" + context,
];

caches
  .open(name)
  .then(function(cache) {
    c = cache;
    return c.addAll(reqs);
  })
  .then(function() {
    return c.put(reqs[1], new Response("overwritten"));
  })
  .then(function() {
    return c.keys();
  })
  .then(function(keys) {
    is(keys.length, 3, "Correct number of entries expected");
    ok(keys[0].url.includes(reqs[0]), "The first entry should be untouched");
    ok(
      keys[2].url.includes(reqs[1]),
      "The second entry should be moved to the end"
    );
    ok(
      keys[1].url.includes(reqs[2]),
      "The third entry should now be the second one"
    );
    return c.match(reqs[1]);
  })
  .then(function(r) {
    return r.text();
  })
  .then(function(body) {
    is(body, "overwritten", "The body should be overwritten");
    return caches.delete(name);
  })
  .then(function(deleted) {
    ok(deleted, "The cache should be deleted successfully");
    testDone();
  });
