blob: 44934a2bf6926b6343a9e43a51ffa1ea9b57df3d [file] [log] [blame]
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "core/fileapi/FileList.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace blink {
TEST(FileListTest, pathsForUserVisibleFiles) {
FileList* const fileList = FileList::create();
// Native file.
fileList->append(File::create("/native/path"));
// Blob file.
const RefPtr<BlobDataHandle> blobDataHandle = BlobDataHandle::create();
fileList->append(File::create("name", 0.0, blobDataHandle));
// User visible snapshot file.
{
FileMetadata metadata;
metadata.platformPath = "/native/visible/snapshot";
fileList->append(
File::createForFileSystemFile("name", metadata, File::IsUserVisible));
}
// Not user visible snapshot file.
{
FileMetadata metadata;
metadata.platformPath = "/native/not-visible/snapshot";
fileList->append(File::createForFileSystemFile("name", metadata,
File::IsNotUserVisible));
}
// User visible file system URL file.
{
KURL url(
ParsedURLStringTag(),
"filesystem:http://example.com/isolated/hash/visible-non-native-file");
fileList->append(File::createForFileSystemFile(url, FileMetadata(),
File::IsUserVisible));
}
// Not user visible file system URL file.
{
KURL url(ParsedURLStringTag(),
"filesystem:http://example.com/isolated/hash/"
"not-visible-non-native-file");
fileList->append(File::createForFileSystemFile(url, FileMetadata(),
File::IsNotUserVisible));
}
Vector<String> paths = fileList->pathsForUserVisibleFiles();
ASSERT_EQ(3u, paths.size());
EXPECT_EQ("/native/path", paths[0]);
EXPECT_EQ("/native/visible/snapshot", paths[1]);
EXPECT_EQ("visible-non-native-file", paths[2])
<< "Files not backed by a native file should return name.";
}
} // namespace blink