1// Copyright 2014 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "config.h"
6#include "modules/filesystem/DOMFileSystemBase.h"
7
8#include "core/fileapi/File.h"
9#include "public/platform/Platform.h"
10#include "public/platform/WebUnitTestSupport.h"
11#include <gtest/gtest.h>
12
13
14namespace blink {
15
16class DOMFileSystemBaseTest : public ::testing::Test {
17public:
18    DOMFileSystemBaseTest()
19    {
20        m_filePath = Platform::current()->unitTestSupport()->webKitRootDir();
21        m_filePath.append("/Source/modules/filesystem/DOMFileSystemBaseTest.cpp");
22        getFileMetadata(m_filePath, m_fileMetadata);
23        m_fileMetadata.platformPath = m_filePath;
24    }
25
26protected:
27    String m_filePath;
28    FileMetadata m_fileMetadata;
29};
30
31
32TEST_F(DOMFileSystemBaseTest, externalFilesystemFilesAreUserVisible)
33{
34    KURL rootUrl = DOMFileSystemBase::createFileSystemRootURL("http://chromium.org/", FileSystemTypeExternal);
35
36    RefPtrWillBeRawPtr<File> file = DOMFileSystemBase::createFile(m_fileMetadata, rootUrl, FileSystemTypeExternal, "DOMFileSystemBaseTest.cpp");
37    EXPECT_TRUE(file);
38    EXPECT_TRUE(file->hasBackingFile());
39    EXPECT_EQ(File::IsUserVisible, file->userVisibility());
40    EXPECT_EQ("DOMFileSystemBaseTest.cpp", file->name());
41    EXPECT_EQ(m_filePath, file->path());
42}
43
44TEST_F(DOMFileSystemBaseTest, temporaryFilesystemFilesAreNotUserVisible)
45{
46    KURL rootUrl = DOMFileSystemBase::createFileSystemRootURL("http://chromium.org/", FileSystemTypeTemporary);
47
48    RefPtrWillBeRawPtr<File> file = DOMFileSystemBase::createFile(m_fileMetadata, rootUrl, FileSystemTypeTemporary, "UserVisibleName.txt");
49    EXPECT_TRUE(file);
50    EXPECT_TRUE(file->hasBackingFile());
51    EXPECT_EQ(File::IsNotUserVisible, file->userVisibility());
52    EXPECT_EQ("UserVisibleName.txt", file->name());
53    EXPECT_EQ(m_filePath, file->path());
54}
55
56TEST_F(DOMFileSystemBaseTest, persistentFilesystemFilesAreNotUserVisible)
57{
58    KURL rootUrl = DOMFileSystemBase::createFileSystemRootURL("http://chromium.org/", FileSystemTypePersistent);
59
60    RefPtrWillBeRawPtr<File> file = DOMFileSystemBase::createFile(m_fileMetadata, rootUrl, FileSystemTypePersistent, "UserVisibleName.txt");
61    EXPECT_TRUE(file);
62    EXPECT_TRUE(file->hasBackingFile());
63    EXPECT_EQ(File::IsNotUserVisible, file->userVisibility());
64    EXPECT_EQ("UserVisibleName.txt", file->name());
65    EXPECT_EQ(m_filePath, file->path());
66}
67
68} // namespace blink
69
70
71
72