This source file includes following definitions.
- CreateFileSystemURL
- SetUp
- IsAccessValid
- TEST_F
#include "webkit/browser/fileapi/sandbox_file_system_backend_delegate.h"
#include "base/basictypes.h"
#include "base/file_util.h"
#include "base/files/scoped_temp_dir.h"
#include "base/memory/scoped_ptr.h"
#include "base/message_loop/message_loop.h"
#include "base/message_loop/message_loop_proxy.h"
#include "content/public/test/test_file_system_options.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "url/gurl.h"
#include "webkit/browser/fileapi/file_system_url.h"
using fileapi::FileSystemURL;
namespace content {
namespace {
FileSystemURL CreateFileSystemURL(const char* path) {
const GURL kOrigin("http://foo/");
return fileapi::FileSystemURL::CreateForTest(
kOrigin, fileapi::kFileSystemTypeTemporary,
base::FilePath::FromUTF8Unsafe(path));
}
}
class SandboxFileSystemBackendDelegateTest : public testing::Test {
protected:
virtual void SetUp() {
ASSERT_TRUE(data_dir_.CreateUniqueTempDir());
delegate_.reset(new fileapi::SandboxFileSystemBackendDelegate(
NULL ,
base::MessageLoopProxy::current().get(),
data_dir_.path(),
NULL ,
CreateAllowFileAccessOptions()));
}
bool IsAccessValid(const FileSystemURL& url) const {
return delegate_->IsAccessValid(url);
}
base::ScopedTempDir data_dir_;
base::MessageLoop message_loop_;
scoped_ptr<fileapi::SandboxFileSystemBackendDelegate> delegate_;
};
TEST_F(SandboxFileSystemBackendDelegateTest, IsAccessValid) {
EXPECT_TRUE(IsAccessValid(CreateFileSystemURL("a")));
EXPECT_FALSE(IsAccessValid(CreateFileSystemURL("a/../b")));
EXPECT_FALSE(IsAccessValid(
FileSystemURL::CreateForTest(
GURL("unknown://bar"), fileapi::kFileSystemTypeTemporary,
base::FilePath::FromUTF8Unsafe("foo"))));
EXPECT_FALSE(IsAccessValid(CreateFileSystemURL(".")));
EXPECT_FALSE(IsAccessValid(CreateFileSystemURL("..")));
EXPECT_FALSE(IsAccessValid(CreateFileSystemURL("...")));
EXPECT_FALSE(IsAccessValid(CreateFileSystemURL(" ..")));
EXPECT_FALSE(IsAccessValid(CreateFileSystemURL(".. ")));
EXPECT_TRUE(IsAccessValid(CreateFileSystemURL(" .")));
EXPECT_TRUE(IsAccessValid(CreateFileSystemURL(". ")));
EXPECT_TRUE(IsAccessValid(CreateFileSystemURL("b.")));
EXPECT_TRUE(IsAccessValid(CreateFileSystemURL(".b")));
EXPECT_TRUE(IsAccessValid(CreateFileSystemURL("c:")));
}
}