function run_test()
{
  do_get_profile();

  // Open non-existing for read, should fail
  asyncOpenCacheEntry("http://b/", "disk", Ci.nsICacheStorage.OPEN_READONLY, null,
    new OpenCallback(NOTFOUND, null, null, function(entry) {
      // Open the same non-existing for read again, should fail second time
      asyncOpenCacheEntry("http://b/", "disk", Ci.nsICacheStorage.OPEN_READONLY, null,
        new OpenCallback(NOTFOUND, null, null, function(entry) {
          // Try it again normally, should go
          asyncOpenCacheEntry("http://b/", "disk", Ci.nsICacheStorage.OPEN_NORMALLY, null,
            new OpenCallback(NEW, "b1m", "b1d", function(entry) {
              // ...and check
              asyncOpenCacheEntry("http://b/", "disk", Ci.nsICacheStorage.OPEN_NORMALLY, null,
                new OpenCallback(NORMAL, "b1m", "b1d", function(entry) {
                  finish_cache2_test();
                })
              );
            })
          );
        })
      );
    })
  );

  do_test_pending();
}
