tor-browser

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

cc-request.any.js (4889B)


      1 // META: global=window,worker
      2 // META: title=HTTP Cache - Cache-Control Request Directives
      3 // META: timeout=long
      4 // META: script=/common/utils.js
      5 // META: script=/common/get-host-info.sub.js
      6 // META: script=http-cache.js
      7 
      8 var tests = [
      9  {
     10    name: "HTTP cache doesn't use aged but fresh response when request contains Cache-Control: max-age=0",
     11    requests: [
     12      {
     13        template: "fresh",
     14        pause_after: true
     15      },
     16      {
     17        request_headers: [
     18          ["Cache-Control", "max-age=0"]
     19        ],
     20        expected_type: "not_cached"
     21      }
     22    ]
     23  },
     24  {
     25    name: "HTTP cache doesn't use aged but fresh response when request contains Cache-Control: max-age=1",
     26    requests: [
     27      {
     28        template: "fresh",
     29        pause_after: true
     30      },
     31      {
     32        request_headers: [
     33          ["Cache-Control", "max-age=1"]
     34        ],
     35        expected_type: "not_cached"
     36      }
     37    ]
     38  },
     39  {
     40    name: "HTTP cache doesn't use fresh response with Age header when request contains Cache-Control: max-age that is greater than remaining freshness",
     41    requests: [
     42      {
     43        response_headers: [
     44          ["Cache-Control", "max-age=3600"],
     45          ["Age", "1800"]
     46        ]
     47      },
     48      {
     49        request_headers: [
     50          ["Cache-Control", "max-age=600"]
     51        ],
     52        expected_type: "not_cached"
     53      }
     54    ]
     55  },
     56  {
     57    name: "HTTP cache does use aged stale response when request contains Cache-Control: max-stale that permits its use",
     58    requests: [
     59      {
     60        response_headers: [
     61          ["Cache-Control", "max-age=1"]
     62        ],
     63        pause_after: true
     64      },
     65      {
     66        request_headers: [
     67          ["Cache-Control", "max-stale=1000"]
     68        ],
     69        expected_type: "cached"
     70      }
     71    ]
     72  },
     73  {
     74    name: "HTTP cache does reuse stale response with Age header when request contains Cache-Control: max-stale that permits its use",
     75    requests: [
     76      {
     77        response_headers: [
     78          ["Cache-Control", "max-age=1500"],
     79          ["Age", "2000"]
     80        ]
     81      },
     82      {
     83        request_headers: [
     84          ["Cache-Control", "max-stale=1000"]
     85        ],
     86        expected_type: "cached"
     87      }
     88    ]
     89  },
     90  {
     91    name: "HTTP cache doesn't reuse fresh response when request contains Cache-Control: min-fresh that wants it fresher",
     92    requests: [
     93      {
     94        response_headers: [
     95          ["Cache-Control", "max-age=1500"]
     96        ]
     97      },
     98      {
     99        request_headers: [
    100          ["Cache-Control", "min-fresh=2000"]
    101        ],
    102        expected_type: "not_cached"
    103      }
    104    ]
    105  },
    106  {
    107    name: "HTTP cache doesn't reuse fresh response with Age header when request contains Cache-Control: min-fresh that wants it fresher",
    108    requests: [
    109      {
    110        response_headers: [
    111          ["Cache-Control", "max-age=1500"],
    112          ["Age", "1000"]
    113        ]
    114      },
    115      {
    116        request_headers: [
    117          ["Cache-Control", "min-fresh=1000"]
    118        ],
    119        expected_type: "not_cached"
    120      }
    121    ]
    122  },
    123  {
    124    name: "HTTP cache doesn't reuse fresh response when request contains Cache-Control: no-cache",
    125    requests: [
    126      {
    127        response_headers: [
    128          ["Cache-Control", "max-age=3600"]
    129        ]
    130      },
    131      {
    132        request_headers: [
    133          ["Cache-Control", "no-cache"]
    134        ],
    135        expected_type: "not_cached"
    136      }
    137    ]
    138  },
    139  {
    140    name: "HTTP cache validates fresh response with Last-Modified when request contains Cache-Control: no-cache",
    141    requests: [
    142      {
    143        response_headers: [
    144          ["Cache-Control", "max-age=3600"],
    145          ["Last-Modified", -10000]
    146        ]
    147      },
    148      {
    149        request_headers: [
    150          ["Cache-Control", "no-cache"]
    151        ],
    152        expected_type: "lm_validate"
    153      }
    154    ]
    155  },
    156  {
    157    name: "HTTP cache validates fresh response with ETag when request contains Cache-Control: no-cache",
    158    requests: [
    159      {
    160        response_headers: [
    161          ["Cache-Control", "max-age=3600"],
    162          ["ETag", http_content("abc")]
    163        ]
    164      },
    165      {
    166        request_headers: [
    167          ["Cache-Control", "no-cache"]
    168        ],
    169        expected_type: "etag_validate"
    170      }
    171    ]
    172  },
    173  {
    174    name: "HTTP cache doesn't reuse fresh response when request contains Cache-Control: no-store",
    175    requests: [
    176      {
    177        response_headers: [
    178          ["Cache-Control", "max-age=3600"]
    179        ]
    180      },
    181      {
    182        request_headers: [
    183          ["Cache-Control", "no-store"]
    184        ],
    185        expected_type: "not_cached"
    186      }
    187    ]
    188  },
    189  {
    190    name: "HTTP cache generates 504 status code when nothing is in cache and request contains Cache-Control: only-if-cached",
    191    requests: [
    192      {
    193        request_headers: [
    194          ["Cache-Control", "only-if-cached"]
    195        ],
    196        expected_status: 504,
    197        expected_response_text: null
    198      }
    199    ]
    200  }
    201 ];
    202 run_tests(tests);