tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

helper.js (1810B)


      1 function assert_no_message_from_frame(test, frame) {
      2  window.addEventListener("message", test.step_func(e => {
      3    assert_not_equals(e.source, frame.contentWindow);
      4  }));
      5 }
      6 
      7 function appendFrameAndGetElement(test, frame) {
      8  return new Promise((resolve, reject) => {
      9    frame.onload = test.step_func(_ => {
     10      frame.onload = null;
     11      resolve(frame.contentDocument.querySelector('#dangling'));
     12    });
     13    document.body.appendChild(frame);
     14  });
     15 }
     16 
     17 function appendAndSubmit(test, frame) {
     18  return new Promise((resolve, reject) => {
     19    frame.onload = test.step_func(_ => {
     20      frame.onload = null;
     21      frame.contentDocument.querySelector('form').addEventListener("error", _ => {
     22        resolve("error");
     23      });
     24      frame.contentDocument.querySelector('form').addEventListener("submit", _ => {
     25        resolve("submit");
     26      });
     27      frame.contentDocument.querySelector('[type=submit]').click();
     28    });
     29    document.body.appendChild(frame);
     30  });
     31 }
     32 
     33 function assert_no_submission(test, frame) {
     34  assert_no_message_from_frame(test, frame);
     35 
     36  appendAndSubmit(test, frame)
     37    .then(test.step_func_done(result => {
     38      assert_equals(result, "error");
     39      frame.remove();
     40    }));
     41 }
     42 
     43 function assert_img_loaded(test, frame) {
     44  appendFrameAndGetElement(test, frame)
     45    .then(test.step_func_done(img => {
     46      assert_equals(img.naturalHeight, 103, "Height");
     47      assert_equals(img.naturalWidth, 76, "Width");
     48    }));
     49 }
     50 
     51 function assert_img_not_loaded(test, frame) {
     52  appendFrameAndGetElement(test, frame)
     53    .then(test.step_func_done(img => {
     54      assert_equals(img.naturalHeight, 0, "Height");
     55      assert_equals(img.naturalWidth, 0, "Width");
     56    }));
     57 }
     58 
     59 function createFrame(markup) {
     60  var i = document.createElement('iframe');
     61  i.srcdoc = `${markup}sekrit`;
     62  return i;
     63 }