Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5)

Unified Diff: third_party/WebKit/LayoutTests/fast/mediastream/RTCPeerConnection-generateCertificate.html

Issue 1740993002: RTCPeerConnection.generateCertificate: Optionally specify expiration. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed comments Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/LayoutTests/fast/mediastream/RTCPeerConnection-generateCertificate.html
diff --git a/third_party/WebKit/LayoutTests/fast/mediastream/RTCPeerConnection-generateCertificate.html b/third_party/WebKit/LayoutTests/fast/mediastream/RTCPeerConnection-generateCertificate.html
index 72b86eac66eab4f71238102c3e30959561690090..ab0dbf2ce231622d52786736c1f0ef28652cb57d 100644
--- a/third_party/WebKit/LayoutTests/fast/mediastream/RTCPeerConnection-generateCertificate.html
+++ b/third_party/WebKit/LayoutTests/fast/mediastream/RTCPeerConnection-generateCertificate.html
@@ -7,11 +7,18 @@
<script>
description("Tests RTCPeerConnection.generateCertificate RSA/ECDSA.");
+// Constants
+var minuteInMs = 60 * 1000;
+var dayInMs = 24 * 60 * minuteInMs;
+
// Signature of the last generateCertificate call.
var generateCallString = null;
// Global certificate variables so that the "should..." methods can evaluate them.
var certRSA = null;
var certECDSA = null;
+var certExpiresNegativeOneDay = null;
+var certExpiresZero = null;
+var certExpiresPositiveOneDay = null;
// 1: RSA-2048 using public exponent = 65537.
function generate1RSA()
@@ -24,7 +31,7 @@ function generate1RSASuccessful(certificate)
{
certRSA = certificate;
testPassed(generateCallString);
- certificateSanityCheck(certificate, 'certRSA');
+ certificateSanityCheck('certRSA');
generate2ECDSA();
}
function generate1RSAFailed()
@@ -44,17 +51,53 @@ function generate2ECDSASuccessful(certificate)
{
certECDSA = certificate;
testPassed(generateCallString);
- certificateSanityCheck(certificate, 'certECDSA');
- finishJSTest();
+ certificateSanityCheck('certECDSA');
+ generate3ExpiresNegativeOneDay();
}
function generate2ECDSAFailed()
{
testFailed(generateCallString);
+ generate3ExpiresNegativeOneDay();
+}
+
+// 3-5: Verify that the |expires| attribute works (generate ECDSA because its faster).
+function generate3ExpiresNegativeOneDay()
+{
+ generateCallString = 'generateCertificate({ name: "ECDSA", namedCurve: "P-256", expires:-dayInMs })';
+ webkitRTCPeerConnection.generateCertificate({ name: "ECDSA", namedCurve: "P-256", expires:-dayInMs })
+ .then(function(certificate) { certExpiresNegativeOneDay = certificate; generate4ExpiresZero(); }, generate4ExpiresZero);
+}
+function generate4ExpiresZero()
+{
+ generateCallString = 'generateCertificate({ name: "ECDSA", namedCurve: "P-256", expires:0 })';
+ webkitRTCPeerConnection.generateCertificate({ name: "ECDSA", namedCurve: "P-256", expires:0 })
+ .then(function(certificate) { certExpiresZero = certificate; generate5ExpiresPositiveOneDay(); }, generate5ExpiresPositiveOneDay);
+}
+function generate5ExpiresPositiveOneDay()
+{
+ generateCallString = 'generateCertificate({ name: "ECDSA", namedCurve: "P-256", expires:dayInMs })'; // +1 day
+ webkitRTCPeerConnection.generateCertificate({ name: "ECDSA", namedCurve: "P-256", expires:dayInMs })
+ .then(function(certificate) { certExpiresPositiveOneDay = certificate; generate3to5ExpiresResolved(); }, generate3to5ExpiresResolved);
+}
+function generate3to5ExpiresResolved()
+{
+ // A negative |expires| value is not a DOMTimeStamp, it should be ignored and
+ // generate a certificate that has not expired.
+ certificateSanityCheck('certExpiresNegativeOneDay');
+
+ // Check that the zero expiration certificate was generated but has expired.
+ shouldBeNonNull('certExpiresZero');
+ shouldBeTrue('new Date().getTime() >= certExpiresZero.expires');
+
+ // Check that the +1 day expiration certificate expires in approximately 1 day (+/- 1 minute).
+ shouldBeNonNull('certExpiresPositiveOneDay');
+ shouldBeTrue('Math.abs(certExpiresPositiveOneDay.expires - (new Date().getTime() + dayInMs)) <= minuteInMs');
+
finishJSTest();
}
// Helper functions.
-function certificateSanityCheck(cert, certVariableName)
+function certificateSanityCheck(certVariableName)
{
shouldBeNonNull(certVariableName);
shouldBeTrue('new Date().getTime() < ' + certVariableName + '.expires');

Powered by Google App Engine
This is Rietveld 408576698