TEST(FileInputTypeTest, createFileList) { Vector<FileChooserFileInfo> files; // Natvie file. files.append(FileChooserFileInfo( "/native/path/native-file", "display-name")); // Non-native file. KURL url(ParsedURLStringTag(), "filesystem:http://example.com/isolated/hash/non-native-file"); FileMetadata metadata; metadata.length = 64; metadata.modificationTime = 24 * 60 * 60 /* sec */; files.append(FileChooserFileInfo(url, metadata)); FileList* list = FileInputType::createFileList(files, false); ASSERT_TRUE(list); ASSERT_EQ(2u, list->length()); EXPECT_EQ("/native/path/native-file", list->item(0)->path()); EXPECT_EQ("display-name", list->item(0)->name()); EXPECT_TRUE(list->item(0)->fileSystemURL().isEmpty()); EXPECT_TRUE(list->item(1)->path().isEmpty()); EXPECT_EQ("non-native-file", list->item(1)->name()); EXPECT_EQ(url, list->item(1)->fileSystemURL()); EXPECT_EQ(64u, list->item(1)->size()); EXPECT_EQ(24 * 60 * 60 * 1000 /* ms */, list->item(1)->lastModified()); }
void WebFileChooserCompletionImpl::didChooseFile(const WebVector<SelectedFileInfo>& files) { Vector<FileChooserFileInfo> fileInfo; for (size_t i = 0; i < files.size(); ++i) { if (files[i].fileSystemURL.isEmpty()) { fileInfo.append(FileChooserFileInfo(files[i].path, files[i].displayName)); } else { FileMetadata metadata; metadata.modificationTime = files[i].modificationTime; metadata.length = files[i].length; metadata.type = files[i].isDirectory ? FileMetadata::TypeDirectory : FileMetadata::TypeFile; fileInfo.append(FileChooserFileInfo(files[i].fileSystemURL, metadata)); } } m_fileChooser->chooseFiles(fileInfo); // This object is no longer needed. delete this; }
void WebFileChooserCompletionImpl::didChooseFile(const WebVector<WebString>& fileNames) { Vector<FileChooserFileInfo> fileInfo; for (size_t i = 0; i < fileNames.size(); ++i) fileInfo.append(FileChooserFileInfo(fileNames[i])); m_fileChooser->chooseFiles(fileInfo); // This object is no longer needed. delete this; }
void FileChooser::chooseFiles(const Vector<String>& filenames) { // FIXME: This is inelegant. We should not be looking at settings here. if (m_settings.selectedFiles == filenames) return; if (m_client) { Vector<FileChooserFileInfo> files; for (unsigned i = 0; i < filenames.size(); ++i) files.append(FileChooserFileInfo(filenames[i])); m_client->filesChosen(files); } }