Title: [214690] trunk/LayoutTests
Revision
214690
Author
[email protected]
Date
2017-03-31 15:08:36 -0700 (Fri, 31 Mar 2017)

Log Message

Add a test to ensure webrtc generated certificates and names are ephemeral
https://bugs.webkit.org/show_bug.cgi?id=170225

Patch by Youenn Fablet <[email protected]> on 2017-03-31
Reviewed by Jon Lee.

* webrtc/ephemeral-certificates-and-cnames-expected.txt: Added.
* webrtc/ephemeral-certificates-and-cnames.html: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (214689 => 214690)


--- trunk/LayoutTests/ChangeLog	2017-03-31 22:05:22 UTC (rev 214689)
+++ trunk/LayoutTests/ChangeLog	2017-03-31 22:08:36 UTC (rev 214690)
@@ -1,3 +1,13 @@
+2017-03-31  Youenn Fablet  <[email protected]>
+
+        Add a test to ensure webrtc generated certificates and names are ephemeral
+        https://bugs.webkit.org/show_bug.cgi?id=170225
+
+        Reviewed by Jon Lee.
+
+        * webrtc/ephemeral-certificates-and-cnames-expected.txt: Added.
+        * webrtc/ephemeral-certificates-and-cnames.html: Added.
+
 2017-03-31  Wenson Hsieh  <[email protected]>
 
         [WK2] Tapping editable text inside of a range selection no longer changes the selection to a caret

Added: trunk/LayoutTests/webrtc/ephemeral-certificates-and-cnames-expected.txt (0 => 214690)


--- trunk/LayoutTests/webrtc/ephemeral-certificates-and-cnames-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/webrtc/ephemeral-certificates-and-cnames-expected.txt	2017-03-31 22:08:36 UTC (rev 214690)
@@ -0,0 +1,3 @@
+
+PASS Ensuring certificates and cnames are ephemerals 
+

Added: trunk/LayoutTests/webrtc/ephemeral-certificates-and-cnames.html (0 => 214690)


--- trunk/LayoutTests/webrtc/ephemeral-certificates-and-cnames.html	                        (rev 0)
+++ trunk/LayoutTests/webrtc/ephemeral-certificates-and-cnames.html	2017-03-31 22:08:36 UTC (rev 214690)
@@ -0,0 +1,81 @@
+<!doctype html>
+<html>
+    <head>
+        <meta charset="utf-8">
+        <title>Testing basic video exchange from offerer to receiver</title>
+        <script src=""
+        <script src=""
+    </head>
+    <body>
+        <script src =""
+        <script>
+function fingerprintFromSDP(sdp)
+{
+    var fingerprint;
+    sdp.split("\r\n").forEach((line) => {
+        if (line.startsWith("a=fingerprint"))
+            fingerprint = line.substring(14);
+    });
+    return fingerprint;
+}
+
+function cnameFromSDP(sdp)
+{
+    var _expression_ = new RegExp("^a=ssrc:(\\d+) cname:([\\w+/\\-@\\.\\{\\}]+).*$");
+
+    var cname;
+    sdp.split("\r\n").forEach((line) => {
+        let match = line.match(_expression_);
+        if (match)
+            cname = match[2];
+    });
+    return cname;
+}
+
+promise_test((test) => {
+    if (window.testRunner)
+        testRunner.setUserMediaPermission(true);
+
+    var offerFingerprint, answerFingerprint;
+    var offerCName;
+    return navigator.mediaDevices.getUserMedia({ video: true, audio: true}).then((stream) => {
+        return new Promise((resolve, reject) => {
+            if (window.internals)
+                internals.useMockRTCPeerConnectionFactory("TwoRealPeerConnections");
+
+            createConnections((firstConnection) => {
+                firstConnection.addTrack(stream.getVideoTracks()[0], stream);
+            }, (secondConnection) => {
+            }, {observeOffer : (offer) => {
+                offerFingerprint = fingerprintFromSDP(offer.sdp);
+                offerCName = cnameFromSDP(offer.sdp);
+            }, observeAnswer: (answer) => {
+                answerFingerprint = fingerprintFromSDP(answer.sdp);
+                resolve();
+            }});
+            setTimeout(() => reject("Test timed out 1"), 2000);
+        });
+    }).then(() => {
+        return navigator.mediaDevices.getUserMedia({ video: true, audio: true}).then((stream) => {
+            return new Promise((resolve, reject) => {
+                if (window.internals)
+                    internals.useMockRTCPeerConnectionFactory("TwoRealPeerConnections");
+
+                createConnections((firstConnection) => {
+                    firstConnection.addTrack(stream.getVideoTracks()[0], stream);
+                }, (secondConnection) => {
+                }, {observeOffer : (offer) => {
+                    assert_not_equals(fingerprintFromSDP(offer.sdp), offerFingerprint);
+                    assert_not_equals(cnameFromSDP(offer.sdp), offerCName);
+                }, observeAnswer: (answer) => {
+                    assert_not_equals(fingerprintFromSDP(answer.sdp), answerFingerprint);
+                    resolve();
+                }});
+                setTimeout(() => reject("Test timed out 2"), 2000);
+            });
+        });
+    });
+}, "Ensuring certificates and cnames are ephemerals");
+        </script>
+    </body>
+</html>
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to