/* Any copyright is dedicated to the Public Domain.
 * http://creativecommons.org/publicdomain/zero/1.0/ */

function* runTests() {
  let url = "http://example.com/1";
  ok(!thumbnailExists(url), "Thumbnail file should not already exist.");
  let numCallbacks = 0;
  let doneCallback = function(doneUrl) {
    is(doneUrl, url, "called back with correct url");
    numCallbacks += 1;
    // We will delete the file after the first callback, then check it
    // still doesn't exist on the second callback, which should give us
    // confidence that we didn't end up with 2 different captures happening
    // for the same url...
    if (numCallbacks == 1) {
      ok(thumbnailExists(url), "Thumbnail file should now exist.");
      removeThumbnail(url);
      return;
    }
    if (numCallbacks == 2) {
      ok(!thumbnailExists(url), "Thumbnail file should still be deleted.");
      // and that's all we expect, so we are done...
      next();
      return;
    }
    ok(false, "only expecting 2 callbacks");
  };
  BackgroundPageThumbs.capture(url, {onDone: doneCallback});
  BackgroundPageThumbs.capture(url, {onDone: doneCallback});
  yield true;
}
