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

Unified Diff: LayoutTests/http/tests/serviceworker/resources/request-worker.js

Issue 516603004: [ServiceWorker] Support setting body to Request object in ServiceWorker. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: incorporated yhirano's comment Created 6 years, 4 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
« no previous file with comments | « no previous file | Source/modules/modules.gypi » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: LayoutTests/http/tests/serviceworker/resources/request-worker.js
diff --git a/LayoutTests/http/tests/serviceworker/resources/request-worker.js b/LayoutTests/http/tests/serviceworker/resources/request-worker.js
index a42c7654cf8f2521056e3a94597d6cf435e94332..2632b5720d6287576ad3788c23cbfb46dca2027a 100644
--- a/LayoutTests/http/tests/serviceworker/resources/request-worker.js
+++ b/LayoutTests/http/tests/serviceworker/resources/request-worker.js
@@ -1,4 +1,5 @@
importScripts('worker-test-harness.js');
+importScripts('test-helpers.js');
var URL = 'https://www.example.com/test.html';
@@ -282,3 +283,97 @@ test(function() {
'method should not be changed when normalized: ' + method);
});
}, 'Request method names are normalized');
+
+async_test(function(t) {
+ var getContentType = function(headers) {
+ var content_type = '';
+ headers.forEach(function(value, key) {
+ if (key == 'content-type') {
+ content_type = value;
+ }
+ });
+ return content_type;
+ };
+ var request =
+ new Request(URL,
+ {
+ method: 'POST',
+ body: new Blob(['Test Blob'], {type: 'test/type'})
+ });
+ assert_equals(
+ getContentType(request.headers), 'test/type',
+ 'ContentType header of Request created with Blob body must be set.');
+ request.body.asText()
+ .then(function(result) {
+ assert_equals(result, 'Test Blob',
+ 'Creating a Request with Blob body should success.');
yhirano 2014/09/01 08:36:30 Please place a blank line between the assertion of
horo 2014/09/01 09:03:17 Done.
+ request = new Request(URL, {method: 'POST', body: 'Test String'});
+ assert_equals(
+ getContentType(request.headers), 'text/plain;charset=UTF-8',
+ 'ContentType header of Request created with string must be set.');
+ return request.body.asText();
+ })
+ .then(function(result) {
+ assert_equals(result, 'Test String',
+ 'Creating a Request with string body should success.');
+ var text = "Test ArrayBuffer";
+ var array = new Uint8Array(text.length);
+ for (var i = 0; i < text.length; ++i)
+ array[i] = text.charCodeAt(i);
+ request = new Request(URL, {method: 'POST', body: array.buffer});
+ return request.body.asText();
+ })
+ .then(function(result) {
+ assert_equals(
+ result, 'Test ArrayBuffer',
+ 'Creating a Request with ArrayBuffer body should success.');
+ var text = "Test ArrayBufferView";
+ var array = new Uint8Array(text.length);
+ for (var i = 0; i < text.length; ++i)
+ array[i] = text.charCodeAt(i);
+ request = new Request(URL, {method: 'POST', body: array});
+ return request.body.asText();
+ })
+ .then(function(result) {
+ assert_equals(
+ result, 'Test ArrayBufferView',
+ 'Creating a Request with ArrayBuffer body should success.');
+ var formData = new FormData();
+ formData.append('sample string', '1234567890');
+ formData.append('sample blob', new Blob(['blob content']));
+ formData.append('sample file',
+ new File(['file content'], 'file.dat'));
+ request = new Request(URL, {method: 'POST', body: formData});
+ return request.body.asText();
+ })
+ .then(function(result) {
+ var reg = new RegExp('multipart\/form-data; boundary=(.*)');
+ var regResult = reg.exec(getContentType(request.headers));
+ var boundary = regResult[1];
+ var expected_body =
+ '--' + boundary + '\r\n' +
+ 'Content-Disposition: form-data; name="sample string"\r\n' +
+ '\r\n' +
+ '1234567890\r\n' +
+ '--' + boundary + '\r\n' +
+ 'Content-Disposition: form-data; name="sample blob"; ' +
+ 'filename="blob"\r\n' +
+ 'Content-Type: application/octet-stream\r\n' +
+ '\r\n' +
+ 'blob content\r\n' +
+ '--' + boundary + '\r\n' +
+ 'Content-Disposition: form-data; name="sample file"; ' +
+ 'filename="file.dat"\r\n' +
+ 'Content-Type: application/octet-stream\r\n' +
+ '\r\n' +
+ 'file content\r\n' +
+ '--' + boundary + '--\r\n';
+ assert_equals(
+ result, expected_body,
+ 'Creating a Request with FormData body should success.');
+ })
+ .then(function() {
+ t.done();
+ })
+ .catch(unreached_rejection(t));
+ }, 'Request body test in ServiceWorkerGlobalScope');
« no previous file with comments | « no previous file | Source/modules/modules.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698