tor-browser

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

characterset-helper.js (2116B)


      1 function runCharacterSetTests(encodingMap) {
      2  // Add spaces and mix up case
      3  Object.keys(encodingMap).forEach(function(name) {
      4    var lower = encodingMap[name];
      5    var upper = encodingMap[name].map(function(s) { return s.toUpperCase() });
      6    var mixed = encodingMap[name].map(function(s) {
      7      var ret = "";
      8      for (var i = 0; i < s.length; i += 2) {
      9        ret += s[i].toUpperCase();
     10        if (i + 1 < s.length) {
     11          ret += s[i + 1];
     12        }
     13      }
     14      return ret;
     15    });
     16    var spacey = encodingMap[name].map(function(s) {
     17      return " \t\n\f\r" + s + " \t\n\f\r";
     18    });
     19    encodingMap[name] = [];
     20    for (var i = 0; i < lower.length; i++) {
     21      encodingMap[name].push(lower[i]);
     22      /*
     23      if (lower[i] != upper[i]) {
     24        encodingMap[name].push(upper[i]);
     25      }
     26      if (lower[i] != mixed[i] && upper[i] != mixed[i]) {
     27        encodingMap[name].push(mixed[i]);
     28      }
     29      encodingMap[name].push(spacey[i]);
     30      */
     31    }
     32  });
     33 
     34  Object.keys(encodingMap).forEach(function(name) {
     35    encodingMap[name].forEach(function(label) {
     36      var iframe = document.createElement("iframe");
     37      var t = async_test("Name " + format_value(name) +
     38                        " has label " + format_value(label) + " (characterSet)");
     39      var t2 = async_test("Name " + format_value(name) +
     40                        " has label " + format_value(label) + " (inputEncoding)");
     41      var t3 = async_test("Name " + format_value(name) +
     42                        " has label " + format_value(label) + " (charset)");
     43      iframe.src = "encoding.py?label=" + label;
     44      iframe.onload = function() {
     45        t.step(function() {
     46          assert_equals(iframe.contentDocument.characterSet, name);
     47        });
     48        t2.step(function() {
     49          assert_equals(iframe.contentDocument.inputEncoding, name);
     50        });
     51        t3.step(function() {
     52          assert_equals(iframe.contentDocument.charset, name);
     53        });
     54        document.body.removeChild(iframe);
     55        t.done();
     56        t2.done();
     57        t3.done();
     58      };
     59      document.body.appendChild(iframe);
     60    });
     61  });
     62 }