summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/XMLHttpRequest/response-data-gzip.htm
blob: a3d2713d0f419aaeb29098731ebad3da33de2d3d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<!doctype html>
<html>
  <head>
    <title>XMLHttpRequest: GZIP response was correctly inflated</title>
    <script src="/resources/testharness.js"></script>
    <script src="/resources/testharnessreport.js"></script>
    <link rel="help" href="https://dvcs.w3.org/hg/xhr/raw-file/tip/Overview.html#the-send()-method" data-tested-assertations="following::p[contains(text(),'content-encodings')]" />
  </head>
  <body>
    <div id="log"></div>
    <script>
      function request(input) {
        var test = async_test();
        test.step(function() {
          var client = new XMLHttpRequest()

          client.open("POST", "resources/gzip.py", false);

          client.onreadystatechange = test.step_func(function () {
              if (client.readyState === 4) {
                  var len = parseInt(client.getResponseHeader('content-length'), 10);

                  assert_equals(client.getResponseHeader('content-encoding'), 'gzip');
                  assert_true(len < input.length);
                  assert_equals(client.responseText, input);
                  test.done();
              }
          });

          client.send(input);
        }, document.title);
      }

      var wellCompressableData = '';
      for (var i = 0; i < 500; i++) {
          wellCompressableData += 'foofoofoofoofoofoofoo';
      }

      request(wellCompressableData);
    </script>
  </body>
</html>