Test the File constructor.

On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".


PASS (new File([], 'world.html')) instanceof window.File is true
PASS (new File(['hello'], 'world.html')) instanceof window.File is true
PASS (new File(['hello'], 'world.html', {})) instanceof window.File is true
PASS (new File(['hello'], 'world.html', {type:'text/html'})) instanceof window.File is true
PASS (new File(['hello'], 'world.html', {type:'text/html', endings:'native'})) instanceof window.File is true
PASS (new File(['hello'], 'world.html', {type:'text/html', endings:'transparent'})) instanceof window.File is true
PASS (new File([], 'world.html')) instanceof window.File is true
PASS (new File()) threw exception TypeError: Not enough arguments.
PASS (new File([])) threw exception TypeError: Not enough arguments.
PASS (new File([], null)) instanceof window.File is true
PASS (new File([], 1)) instanceof window.File is true
PASS (new File([], '')) instanceof window.File is true
PASS (new File([], document)) instanceof window.File is true
PASS new File('hello', 'world.html') threw exception TypeError: Value is not a sequence.
PASS new File(0, 'world.html') threw exception TypeError: Value is not a sequence.
PASS new File(null, 'world.html') threw exception TypeError: Value is not a sequence.
PASS (new File([], 'world.html')) instanceof window.File is true
PASS (new File(['stringPrimitive'], 'world.html')) instanceof window.File is true
PASS (new File([String('stringObject')], 'world.html')) instanceof window.File is true
PASS (new File([new Blob], 'world.html')) instanceof window.File is true
PASS (new File([new Blob([new Blob])], 'world.html')) instanceof window.File is true
PASS (new Blob([new File([], 'world.txt')])) instanceof window.Blob is true
PASS (new Blob([new Blob([new File([new Blob], 'world.txt')])])) instanceof window.Blob is true
PASS (new File([new File([], 'world.txt')], 'world.html')) instanceof window.File is true
PASS (new File([new Blob([new File([new Blob], 'world.txt')])], 'world.html')) instanceof window.File is true
PASS (new File([12], 'world.html')).size is 2
PASS (new File([[]], 'world.html')).size is 0
PASS (new File([{}], 'world.html')).size is 15
PASS (new File([document], 'world.html')).size is 21
PASS (new File([toStringingObj], 'world.html')).size is 8
PASS new File([throwingObj], 'world.html') threw exception Error.
PASS (new File([], null)).name is 'null'
PASS (new File([], 12)).name is '12'
PASS (new File([], '')).name is ''
PASS (new File([], {})).name is '[object Object]'
PASS (new File([], document)).name is '[object HTMLDocument]'
PASS (new File([], toStringingObj)).name is 'A string'
PASS (new File([], throwingObj)).name threw exception Error.
PASS (new File([], 'world.html', {unknownKey:'value'})) instanceof window.File is true
PASS new File([], 'world.html', {type:throwingObj}) threw exception Error.
PASS (new File([], 'world.html', {type:'helloî'})) instanceof window.File is true
PASS (new File([], 'world.html', {type:'helloî'})).type is ''
PASS (new File([], 'world.html', {lastModified: 555, type:'goodbye'})).lastModified is 555
PASS (new File([], 'world.html', {lastModified: 555, type:'goodbyeî'})).lastModified is 555
PASS (new File([], 'world.html', null)) instanceof window.File is true
PASS (new File([], 'world.html', undefined)) instanceof window.File is true
PASS (new File([], 'world.html', 123)) instanceof window.File threw exception TypeError: Type error.
PASS (new File([], 'world.html', 123.4)) instanceof window.File threw exception TypeError: Type error.
PASS (new File([], 'world.html', true)) instanceof window.File threw exception TypeError: Type error.
PASS (new File([], 'world.html', 'abc')) instanceof window.File threw exception TypeError: Type error.
PASS (new File([], 'world.html', [])) instanceof window.File is true
PASS (new File([], 'world.html', /abc/)) instanceof window.File threw exception TypeError: Type error.
PASS (new File([], 'world.html', function () {})) instanceof window.File is true
PASS (new File([], 'world.html')).name is 'world.html'
PASS (new File([], 'w/orld/ht/m.l')).name is 'w/orld/ht/m.l'
PASS (new File([], 'world.html', {type:'text/html'})).name is 'world.html'
PASS (new File([], 'world.html', {type:'text/html'})).type is 'text/html'
PASS (new File([], 'world.html', {type:'text/html'})).size is 0
PASS (new File([], 'world.html', {type:'text/plain;charset=UTF-8'})).type is 'text/plain;charset=utf-8'
PASS (new File([], 'world.html', {lastModified: 441532800000})).lastModified is 441532800000
PASS (new File([], 'world.html')).lastModified is equivalent to Date.now().
PASS (new File([], 'world.html', {})).lastModified is equivalent to Date.now().
PASS (new File([], 'world.html', {type: 'text/plain'})).lastModified is equivalent to Date.now().
PASS (new File([], 'world.html', {lastModified: new Date(441532800000)})).lastModified is 441532800000
PASS window.File.length is 2
PASS new File([new DataView(new ArrayBuffer(100))], 'world.html').size is 100
PASS new File([new Uint8Array(100)], 'world.html').size is 100
PASS new File([new Uint8ClampedArray(100)], 'world.html').size is 100
PASS new File([new Uint16Array(100)], 'world.html').size is 200
PASS new File([new Uint32Array(100)], 'world.html').size is 400
PASS new File([new Int8Array(100)], 'world.html').size is 100
PASS new File([new Int16Array(100)], 'world.html').size is 200
PASS new File([new Int32Array(100)], 'world.html').size is 400
PASS new File([new Float32Array(100)], 'world.html').size is 400
PASS new File([new Float64Array(100)], 'world.html').size is 800
PASS new File([new Float64Array(100), new Int32Array(100), new Uint8Array(100), new DataView(new ArrayBuffer(100))], 'world.html').size is 1400
PASS new File([new Blob([new Int32Array(100)]), new Uint8Array(100), new Float32Array(100), new DataView(new ArrayBuffer(100))], 'world.html').size is 1000
PASS new File([new Blob([new Int32Array(100)]), new File([new Uint16Array(100)], 'world.txt'), new Uint8Array(100), new Float32Array(100), new DataView(new ArrayBuffer(100))], 'world.html').size is 1200
PASS new File([(new DataView(new ArrayBuffer(100))).buffer], 'world.html').size is 100
PASS new File([(new Uint8Array(100)).buffer], 'world.html').size is 100
PASS new File([(new Uint8ClampedArray(100)).buffer], 'world.html').size is 100
PASS new File([(new Uint16Array(100)).buffer], 'world.html').size is 200
PASS new File([(new Uint32Array(100)).buffer], 'world.html').size is 400
PASS new File([(new Int8Array(100)).buffer], 'world.html').size is 100
PASS new File([(new Int16Array(100)).buffer], 'world.html').size is 200
PASS new File([(new Int32Array(100)).buffer], 'world.html').size is 400
PASS new File([(new Float32Array(100)).buffer], 'world.html').size is 400
PASS new File([(new Float64Array(100)).buffer], 'world.html').size is 800
PASS new File([(new Float64Array(100)).buffer, (new Int32Array(100)).buffer, (new Uint8Array(100)).buffer, (new DataView(new ArrayBuffer(100))).buffer], 'world.html').size is 1400
PASS new File([new Blob([(new Int32Array(100)).buffer]), (new Uint8Array(100)).buffer, (new Float32Array(100)).buffer, (new DataView(new ArrayBuffer(100))).buffer], 'world.html').size is 1000
PASS new File([new Blob([(new Int32Array(100)).buffer]), new File([new Uint16Array(100).buffer], 'world.txt'), (new Uint8Array(100)).buffer, (new Float32Array(100)).buffer, (new DataView(new ArrayBuffer(100))).buffer], 'world.html').size is 1200
PASS new Blob([new Blob([new Int32Array(100)]), new File([new Uint16Array(100)], 'world.txt'), new Uint8Array(100), new Float32Array(100), new DataView(new ArrayBuffer(100))]).size is 1200
PASS new Blob([new Blob([(new Int32Array(100)).buffer]), new File([new Uint16Array(100).buffer], 'world.txt'), (new Uint8Array(100)).buffer, (new Float32Array(100)).buffer, (new DataView(new ArrayBuffer(100))).buffer]).size is 1200
PASS successfullyParsed is true

TEST COMPLETE

