Test for some LocalResourceOverride loads.


== Running test suite: LocalResourceOverride
-- Running test case: LocalResourceOverride.None
Triggering load...
Resource Loaded:
URL: http://127.0.0.1:8000/inspector/network/resources/override.txt
MIME Type: text/plain
Status: 200 OK
Response Source: <not-InspectorOverride>
Response Headers:
  Accept-Ranges: <filtered>
  Connection: <filtered>
  Content-Length: 29
  Content-Type: text/plain
  Date: <filtered>
  ETag: <filtered>
  Keep-Alive: <filtered>
  Last-Modified: <filtered>
  Server: <filtered>
Content: default override.txt content


-- Running test case: LocalResourceOverride.Text
Creating Local Resource Override for: http://127.0.0.1:8000/inspector/network/resources/override.txt
Triggering load...
Resource Loaded:
URL: http://127.0.0.1:8000/inspector/network/resources/override.txt
MIME Type: text/plain
Status: 987 Override Status Text
Response Source: Symbol(inspector-override)
Response Headers:
  Content-Type: text/plain
  X-Override-Header-1: Override-Header-Value-1
  X-Override-Header-2: Override-Header-Value-2
Content: PASS - OVERRIDDEN TEXT

-- Running test case: LocalResourceOverride.JavaScript
Creating Local Resource Override for: http://127.0.0.1:8000/inspector/network/resources/override.txt
Triggering load...
Resource Loaded:
URL: http://127.0.0.1:8000/inspector/network/resources/override.txt
MIME Type: application/javascript
Status: 200 Super OK
Response Source: Symbol(inspector-override)
Response Headers:
  Content-Type: application/javascript
  X-Custom-Header: Header value
Content: /* PASS */ (function() { /* OVERRIDDEN */ })();

-- Running test case: LocalResourceOverride.Image
Creating Local Resource Override for: http://127.0.0.1:8000/inspector/network/resources/override.txt
Triggering load...
Resource Loaded:
URL: http://127.0.0.1:8000/inspector/network/resources/override.txt
MIME Type: image/png
Status: 200 OK
Response Source: Symbol(inspector-override)
Response Headers:
  Content-Type: image/png
Content: [base64] PGRhdGE+

-- Running test case: LocalResourceOverride.URL.QueryString
Creating Local Resource Override for: http://127.0.0.1:8000/inspector/network/resources/override.txt?s=1
Creating Local Resource Override for: http://127.0.0.1:8000/inspector/network/resources/override.txt?s=2
Triggering load...
Resource Loaded:
URL: http://127.0.0.1:8000/inspector/network/resources/override.txt?s=2
MIME Type: text/plain
Status: 200 OK
Response Source: Symbol(inspector-override)
Response Headers:
  Content-Type: text/plain
  X-Expected: PASS
Content: PASS

-- Running test case: LocalResourceOverride.URL.Fragment
Creating Local Resource Override for: http://127.0.0.1:8000/inspector/network/resources/override.txt
Triggering load...
Resource Loaded:
URL: http://127.0.0.1:8000/inspector/network/resources/override.txt#frag
MIME Type: text/plain
Status: 200 OK
Response Source: Symbol(inspector-override)
Response Headers:
  Content-Type: text/plain
  X-Expected: PASS
Content: PASS

-- Running test case: LocalResourceOverride.URL.CaseSensitive
Creating Local Resource Override for: http://127.0.0.1:8000/inspector/network/resources/override.txt?case=sensitive
Triggering load...
Resource Loaded:
URL: http://127.0.0.1:8000/inspector/network/resources/override.txt?CaSe=SeNsItIvE
MIME Type: text/plain
Status: 200 OK
Response Source: Symbol(inspector-override)
Response Headers:
  Content-Type: text/plain
  X-Expected: PASS
Content: PASS

-- Running test case: LocalResourceOverride.URL.IsRegex
Creating Local Resource Override for: \/override\.txt\?t=\d+
Triggering load...
Resource Loaded:
URL: http://127.0.0.1:8000/inspector/network/resources/override.txt?t=123456789
MIME Type: text/plain
Status: 200 OK
Response Source: Symbol(inspector-override)
Response Headers:
  Content-Type: text/plain
  X-Expected: PASS
Content: PASS

-- Running test case: LocalResourceOverride.URL.IsCaseSensitiveRegex
Creating Local Resource Override for: \/OvErRiDe\.TxT\?t=\d+
Triggering load...
Resource Loaded:
URL: http://127.0.0.1:8000/inspector/network/resources/override.txt?t=123456789
MIME Type: text/plain
Status: 200 OK
Response Source: Symbol(inspector-override)
Response Headers:
  Content-Type: text/plain
  X-Expected: PASS
Content: PASS

-- Running test case: LocalResourceOverride.404
Creating Local Resource Override for: http://127.0.0.1:8000/inspector/network/resources/override.txt
Triggering load...
Resource Loaded:
URL: http://127.0.0.1:8000/inspector/network/resources/override.txt
MIME Type: text/plain
Status: 404 Not Found
Response Source: Symbol(inspector-override)
Response Headers:
  Content-Type: text/plain
  X-Expected: PASS
Content: PASS

-- Running test case: LocalResourceOverride.Enabled
Creating Local Resource Override for: http://127.0.0.1:8000/inspector/network/resources/override.txt
Triggering load...
Resource Loaded:
URL: http://127.0.0.1:8000/inspector/network/resources/override.txt
MIME Type: text/plain
Status: 200 OK
Response Source: Symbol(inspector-override)
Response Headers:
  Content-Type: text/plain
  X-Expected: PASS
Content: PASS

-- Running test case: LocalResourceOverride.Disabled
Creating Local Resource Override for: http://127.0.0.1:8000/inspector/network/resources/override.txt
Triggering load...
Resource Loaded:
URL: http://127.0.0.1:8000/inspector/network/resources/override.txt
MIME Type: text/plain
Status: 200 OK
Response Source: <not-InspectorOverride>
Response Headers:
  Accept-Ranges: <filtered>
  Connection: <filtered>
  Content-Length: 29
  Content-Type: text/plain
  Date: <filtered>
  ETag: <filtered>
  Keep-Alive: <filtered>
  Last-Modified: <filtered>
  Server: <filtered>
Content: default override.txt content


-- Running test setup.
-- Running test case: LocalResourceOverride.GlobalDisabled
Creating Local Resource Override for: http://127.0.0.1:8000/inspector/network/resources/override.txt
Triggering load...
Resource Loaded:
URL: http://127.0.0.1:8000/inspector/network/resources/override.txt
MIME Type: text/plain
Status: 200 OK
Response Source: <not-InspectorOverride>
Response Headers:
  Accept-Ranges: <filtered>
  Connection: <filtered>
  Content-Length: 29
  Content-Type: text/plain
  Date: <filtered>
  ETag: <filtered>
  Keep-Alive: <filtered>
  Last-Modified: <filtered>
  Server: <filtered>
Content: default override.txt content

-- Running test teardown.

