Add more tests for Netinfo client hints

The new tests are very similar to existing tests in
https://cs.chromium.org/chromium/src/third_party/WebKit/LayoutTests/external/wpt/netinfo/netinfo-basics.html

The new tests verify that the value of client hint headers is
within the acceptable range.

Bug: 835333
Change-Id: I4d7780c898ac9be93c7c3e88122ebc3557164618
Reviewed-on: https://chromium-review.googlesource.com/1065025
Reviewed-by: Robert Ma <robertma@chromium.org>
Commit-Queue: Tarun Bansal <tbansal@chromium.org>
Cr-Commit-Position: refs/heads/master@{#559794}
diff --git a/third_party/WebKit/LayoutTests/external/wpt/client-hints/accept_ch.sub.https.html b/third_party/WebKit/LayoutTests/external/wpt/client-hints/accept_ch.sub.https.html
index 4b70e85..78c7ad0e 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/client-hints/accept_ch.sub.https.html
+++ b/third_party/WebKit/LayoutTests/external/wpt/client-hints/accept_ch.sub.https.html
@@ -23,9 +23,20 @@
     assert_true(r.headers.has("device-memory-received"), "device-memory-received");
     assert_true(r.headers.has("dpr-received"), "dpr-received");
     assert_true(r.headers.has("viewport-width-received"), "viewport-width-received");
+
     assert_true(r.headers.has("rtt-received"), "rtt-received");
+    var rtt = parseInt(r.headers.get("rtt-received"));
+    assert_greater_than_equal(rtt, 0);
+    assert_less_than_equal(rtt, 3000);
+    assert_equals(rtt % 50, 0, 'rtt must be a multiple of 50 msec');
+
     assert_true(r.headers.has("downlink-received"), "downlink-received");
-    assert_true(r.headers.has("ect-received"), "ect-received");
+    var downlinkKbps  = r.headers.get("downlink-received") * 1000;
+    assert_greater_than_equal(downlinkKbps, 0);
+    assert_less_than_equal(downlinkKbps, 10000);
+
+    assert_in_array(r.headers.get("ect-received"), ["slow-2g", "2g",
+          "3g", "4g"], 'ect-received is unexpected');
   });
 }, "Accept-CH header test");
 
diff --git a/third_party/WebKit/LayoutTests/external/wpt/client-hints/echo_client_hints_received.py b/third_party/WebKit/LayoutTests/external/wpt/client-hints/echo_client_hints_received.py
index 88d1a6b5..8f2ccaa 100644
--- a/third_party/WebKit/LayoutTests/external/wpt/client-hints/echo_client_hints_received.py
+++ b/third_party/WebKit/LayoutTests/external/wpt/client-hints/echo_client_hints_received.py
@@ -1,20 +1,20 @@
 def main(request, response):
     """
-    Simple handler that sets a response header based on if which client hint
+    Simple handler that sets a response header based on which client hint
     request headers were received.
     """
 
     response.headers.append("Access-Control-Allow-Origin", "*")
 
     if "device-memory" in request.headers:
-            response.headers.set("device-memory-received", "true")
+            response.headers.set("device-memory-received", request.headers.get("device-memory"))
     if "dpr" in request.headers:
-            response.headers.set("dpr-received", "true")
+            response.headers.set("dpr-received", request.headers.get("dpr"))
     if "viewport-width" in request.headers:
-            response.headers.set("viewport-width-received", "true")
+            response.headers.set("viewport-width-received", request.headers.get("viewport-width"))
     if "rtt" in request.headers:
-            response.headers.set("rtt-received", "true")
+            response.headers.set("rtt-received", request.headers.get("rtt"))
     if "downlink" in request.headers:
-            response.headers.set("downlink-received", "true")
+            response.headers.set("downlink-received", request.headers.get("downlink"))
     if "ect" in request.headers:
-            response.headers.set("ect-received", "true")
\ No newline at end of file
+            response.headers.set("ect-received", request.headers.get("ect"))