| <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> |
| <html> |
| <head> |
| <script src="../../../../resources/js-test-pre.js"></script> |
| </head> |
| <body> |
| <p id="description"></p> |
| <div id="console"></div> |
| <script src="resources/hybrid-blob-util.js"></script> |
| <script> |
| description("Test for building blobs with multiple strings combined by BlobBuilder and sending them via XMLHttpRequest."); |
| |
| var util = new HybridBlobTestUtil(runTests); |
| |
| function runAppendTest(appendItems, opt_ending, opt_urlParameter, opt_type) |
| { |
| var blob = util.appendAndCreateBlob(appendItems, opt_ending, opt_type); |
| var urlParameter = opt_urlParameter; |
| if (!opt_urlParameter) |
| urlParameter = util.createUrlParameter(appendItems, null, opt_ending); |
| if (opt_type != undefined) |
| shouldBe("'" + blob.type + "'", "'" + opt_type + "'"); |
| util.uploadBlob(blob, urlParameter); |
| } |
| |
| function runTests() |
| { |
| var stringA = util.DataItem('A1234567|'); |
| var stringB = util.DataItem('B12345|'); |
| var stringC = util.DataItem('C12345678901|'); |
| |
| var stringLF = util.DataItem('12345\n67890\n'); |
| var stringCRLF = util.DataItem('ABCDE\r\nFGHIJ\r\n'); |
| var stringCR = util.DataItem('abcde\rfghij\r'); |
| |
| debug('* BlobBuilder.append(string)'); |
| runAppendTest([ stringA ]); |
| runAppendTest([ stringA, stringB ]); |
| runAppendTest([ stringA, stringB ], null, null, 'type/foo'); |
| |
| debug('* BlobBuilder.append(blob)'); |
| runAppendTest([ [ stringA ] ]); |
| runAppendTest([ [ stringA, stringB, stringA ] ]); |
| runAppendTest([ [ stringA, stringC ] ], null, null, 'type/bar'); |
| |
| debug('* BlobBuilder.append(string/blob)'); |
| runAppendTest([ [ [ stringA, stringB ], stringA ], stringC ]); |
| runAppendTest([ [ stringA, stringB, stringA ], stringC, [ stringA, stringB, stringA ] ]); |
| |
| debug('* BlobBuilder.append(string/blob) - with recycled blob'); |
| var mixedArray = [ [ stringA, stringB, stringA ], stringC, [ stringA, stringB ] , stringA ]; |
| var blob = { 'type':'blob', 'value':util.appendAndCreateBlob(mixedArray) }; |
| var parameter = util.createUrlParameter([ mixedArray, stringC, mixedArray ]); |
| runAppendTest([ blob, stringC, blob ], null, parameter); |
| |
| debug('* BlobBuilder.append(string) - with line-endings'); |
| runAppendTest([ stringLF ]); |
| runAppendTest([ stringCR ]); |
| runAppendTest([ stringCRLF ]); |
| |
| debug('* BlobBuilder.append(string, "native") - with line-endings'); |
| runAppendTest([ stringLF ], 'native'); |
| runAppendTest([ stringCR ], 'native'); |
| runAppendTest([ stringCRLF ], 'native'); |
| runAppendTest([ stringCRLF, stringLF, stringCRLF ], 'native'); |
| } |
| |
| if (window.eventSender) |
| util.runTests(); |
| else |
| testFailed("This test is not interactive, please run using DumpRenderTree"); |
| |
| var successfullyParsed = true; |
| </script> |
| <script src="../../../../resources/js-test-post.js"></script> |
| </body> |
| </html> |