Title: [218774] trunk/LayoutTests
Revision
218774
Author
[email protected]
Date
2017-06-23 16:21:37 -0700 (Fri, 23 Jun 2017)

Log Message

Add a binary data channel webrtc test
https://bugs.webkit.org/show_bug.cgi?id=173787

Patch by Youenn Fablet <[email protected]> on 2017-06-23
Reviewed by Alex Christensen.

* webrtc/datachannel/binary-expected.txt: Added.
* webrtc/datachannel/binary.html: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (218773 => 218774)


--- trunk/LayoutTests/ChangeLog	2017-06-23 23:16:31 UTC (rev 218773)
+++ trunk/LayoutTests/ChangeLog	2017-06-23 23:21:37 UTC (rev 218774)
@@ -1,5 +1,15 @@
 2017-06-23  Youenn Fablet  <[email protected]>
 
+        Add a binary data channel webrtc test
+        https://bugs.webkit.org/show_bug.cgi?id=173787
+
+        Reviewed by Alex Christensen.
+
+        * webrtc/datachannel/binary-expected.txt: Added.
+        * webrtc/datachannel/binary.html: Added.
+
+2017-06-23  Youenn Fablet  <[email protected]>
+
         Set getUserMedia permission to true by default on WTR
         https://bugs.webkit.org/show_bug.cgi?id=173610
 

Added: trunk/LayoutTests/webrtc/datachannel/binary-expected.txt (0 => 218774)


--- trunk/LayoutTests/webrtc/datachannel/binary-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/webrtc/datachannel/binary-expected.txt	2017-06-23 23:21:37 UTC (rev 218774)
@@ -0,0 +1,3 @@
+
+PASS Basic binary data channel exchange from offerer to receiver 
+

Added: trunk/LayoutTests/webrtc/datachannel/binary.html (0 => 218774)


--- trunk/LayoutTests/webrtc/datachannel/binary.html	                        (rev 0)
+++ trunk/LayoutTests/webrtc/datachannel/binary.html	2017-06-23 23:21:37 UTC (rev 218774)
@@ -0,0 +1,91 @@
+<!doctype html>
+<html>
+  <head>
+    <meta charset="utf-8">
+    <title>Testing basic binary data channel from offerer to receiver</title>
+    <script src=""
+    <script src=""
+  </head>
+  <body>
+    <script src =""
+    <script>
+var localChannel;
+var remoteChannel;
+
+function closeDataChannels() {
+    localChannel.close();
+    remoteChannel.close();
+    closeConnections();
+}
+
+function createArrayBuffer(length)
+{
+    var array = new Uint8Array(length);
+    for (var cptr = 0; cptr < length; cptr++)
+        array[cptr] = cptr + 1;
+    return array;
+}
+
+function checkArrayBuffer(array, length)
+{
+    if (array.byteLength !== length)
+        return false;
+
+    var a = new Uint8Array(array);
+    for (var cptr = 0; cptr < length; cptr++) {
+        if (a[cptr] !== cptr + 1)
+             return false;
+    }
+    return true;
+}
+
+function receiveMessages(event) {
+    try {
+        if (++counter === 1)
+            assert_true(checkArrayBuffer(event.data, 1));
+        else if (counter === 2)
+            assert_true(checkArrayBuffer(event.data, 2));
+        else if (counter === 3)
+            assert_true(checkArrayBuffer(event.data, 3));
+        else if (counter === 4) {
+            assert_true(checkArrayBuffer(event.data, 4));
+            closeDataChannels();
+            finishTest();
+        } else
+            assert_unreached();
+    } catch(e) {
+        console.log(e);
+    }
+}
+
+function sendMessages(channel)
+{
+    channel.send(createArrayBuffer(1));
+    channel.send(createArrayBuffer(2));
+    channel.send(createArrayBuffer(3));
+    channel.send(createArrayBuffer(4));
+}
+
+var finishTest;
+promise_test((test) => {
+    counter = 0;
+    return new Promise((resolve, reject) => {
+        finishTest = resolve;
+        createConnections((localConnection) => {
+            localChannel = localConnection.createDataChannel('sendDataChannel');
+            localChannel.binaryType = "arraybuffer";
+            localChannel._onopen_ = () => { sendMessages(localChannel) };
+        }, (remoteConnection) => {
+            remoteConnection._ondatachannel_ = (event) => {
+                remoteChannel = event.channel;
+                remoteChannel.binaryType = "arraybuffer";
+                remoteChannel._onmessage_ = receiveMessages;
+            };
+        });
+        setTimeout(() => { reject("Test timed out"); }, 5000);
+    });
+}, "Basic binary data channel exchange from offerer to receiver");
+
+    </script>
+  </body>
+</html>
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to