Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added tests for the FileList interface #262

Merged
merged 11 commits into from
Aug 21, 2013
60 changes: 60 additions & 0 deletions FileAPI/filelist-section/filelist.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8'>
<title>FileAPI Test: filelist</title>
<link rel='author' title='Intel' href='http://www.intel.com'>
<link rel='help' href='http://dev.w3.org/2006/webapi/FileAPI/#filelist-section'>
<link rel="help" href="http://dev.w3.org/2006/webapi/FileAPI/#dfn-length">
<link rel="help" href="http://dev.w3.org/2006/webapi/FileAPI/#dfn-item">
<script src='/resources/testharness.js'></script>
<script src='/resources/testharnessreport.js'></script>
</head>

<body>
<form name='uploadData' style="display:none">
<input type='file' id='fileChooser'>
</form>
<div id='log'></div>

<script>
var fileList;

test(function () {
fileList = document.querySelector('#fileChooser').files;
assert_true('FileList' in window, 'window has a FileList property');
}, 'Check if window has a FileList property');

test(function () {
fileList = document.querySelector('#fileChooser').files;
assert_equals(FileList.length, 0, 'FileList.length is 0');
}, 'Check if FileList.length is 0');

test(function () {
fileList = document.querySelector('#fileChooser').files;
assert_true(fileList.item instanceof Function, 'item is a instanceof Function');
}, 'Check if item is a instanceof Function');

test(function() {
fileList = document.querySelector('#fileChooser').files;
assert_inherits(fileList, 'item', 'item is a method of fileList');
}, 'Check if item is a method of fileList');

test(function() {
fileList = document.querySelector('#fileChooser').files;
assert_equals(fileList.item(0), null, 'item method returns null');
}, 'Check if the item method returns null when no file selected');

test(function() {
fileList = document.querySelector('#fileChooser').files;
assert_inherits(fileList, 'length', 'length is fileList attribute');
}, 'Check if length is fileList\'s attribute');

test(function() {
fileList = document.querySelector('#fileChooser').files;
assert_equals(fileList.length, 0, 'fileList length is 0');
}, 'Check if the fileList length is 0 when no file selected');
</script>

</body>
</html>
64 changes: 64 additions & 0 deletions FileAPI/filelist-section/filelist_multiple_selected_files.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8'>
<title>FileAPI Test: filelist_multiple_selected_files</title>
<link rel='author' title='Intel' href='http://www.intel.com'>
<link rel='help' href='http://dev.w3.org/2006/webapi/FileAPI/#filelist-section'>
<link rel="help" href="http://dev.w3.org/2006/webapi/FileAPI/#dfn-length">
<link rel="help" href="http://dev.w3.org/2006/webapi/FileAPI/#dfn-item">
<script src='/resources/testharness.js'></script>
<script src='/resources/testharnessreport.js'></script>
</head>

<body>
<form name='uploadData'>
<input type='file' id='fileChooser' multiple>
</form>
<div>
<p>Test steps:</p>
<ol>
<li>Download <a href='support/upload.txt'>upload.txt</a>, <a href="support/upload.zip">upload.zip</a> to local.</li>
<li>Select the local two files (upload.txt, upload.zip) to run the test.</li>
</ol>
</div>

<div id='log'></div>

<script>
var fileInput = document.querySelector('#fileChooser');
var fileList;

setup({explicit_done: true, explicit_timeout: true});

on_event(fileInput, 'change', function(evt) {
test(function() {
fileList = document.querySelector('#fileChooser').files;
assert_equals(fileList.length, 2, 'fileList length is 2');
}, 'Check if the fileList length is 2 when selected two files');

test(function() {
fileList = document.querySelector('#fileChooser').files;
assert_true(fileList.item(0) instanceof File, 'item method is instanceof File');
}, 'Check if the item method returns the File interface when selected two files');

test(function() {
fileList = document.querySelector('#fileChooser').files;
assert_not_equals(fileList.item(1), null, 'item(1) is not null');
}, 'Check if item(1) is not null when selected two files. Index must be treated by user agents as value for the position of a File object in the FileList, with 0 representing the first file.');

test(function() {
fileList = document.querySelector('#fileChooser').files;
assert_equals(fileList.item(2), null, 'item(2) is null');
}, 'Check if item(2) is null when selected two files');

test(function() {
fileList = document.querySelector('#fileChooser').files;
assert_array_equals([fileList.item(0).name, fileList.item(1).name], ['upload.txt', 'upload.zip'], 'file name string is the name of selected files "upload.txt", "upload.zip"');
}, 'Check if the file name string is the name of selected files');

done();
});
</script>
</body>
</html>
64 changes: 64 additions & 0 deletions FileAPI/filelist-section/filelist_selected_file.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8'>
<title>FileAPI Test: filelist_selected_file</title>
<link rel='author' title='Intel' href='http://www.intel.com'>
<link rel='help' href='http://dev.w3.org/2006/webapi/FileAPI/#filelist-section'>
<link rel="help" href="http://dev.w3.org/2006/webapi/FileAPI/#dfn-length">
<link rel="help" href="http://dev.w3.org/2006/webapi/FileAPI/#dfn-item">
<script src='/resources/testharness.js'></script>
<script src='/resources/testharnessreport.js'></script>
</head>

<body>
<form name='uploadData'>
<input type='file' id='fileChooser'>
</form>
<div>
<p>Test steps:</p>
<ol>
<li>Download <a href='support/upload.txt'>upload.txt</a> to local.</li>
<li>Select the local upload.txt file to run the test.</li>
</ol>
</div>

<div id='log'></div>

<script>
var fileInput = document.querySelector('#fileChooser');
var fileList;

setup({explicit_done: true, explicit_timeout: true});

on_event(fileInput, 'change', function(evt) {
test(function() {
fileList = document.querySelector('#fileChooser').files;
assert_equals(fileList.length, 1, 'fileList length is 1');
}, 'Check if the fileList length is 1 when selected one file');

test(function() {
fileList = document.querySelector('#fileChooser').files;
assert_true(fileList.item(0) instanceof File, 'item method is instanceof File');
}, 'Check if the item method returns the File interface when selected one file');

test(function() {
fileList = document.querySelector('#fileChooser').files;
assert_not_equals(fileList.item(0), null, 'item(0) is not null');
}, 'Check if item(0) is not null when selected one file. Index must be treated by user agents as value for the position of a File object in the FileList, with 0 representing the first file.');

test(function() {
fileList = document.querySelector('#fileChooser').files;
assert_equals(fileList.item(1), null, 'item(1) is null');
}, 'Check if item(1) is null when selected one file only');

test(function() {
fileList = document.querySelector('#fileChooser').files;
assert_equals(fileList.item(0).name, 'upload.txt', 'file name string is "upload.txt"');
}, 'Check if the file name string is the selected "upload.txt"');

done();
});
</script>
</body>
</html>
1 change: 1 addition & 0 deletions FileAPI/filelist-section/support/upload.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Hello, this is test file for file upload.
Binary file added FileAPI/filelist-section/support/upload.zip
Binary file not shown.