Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(109)

Side by Side Diff: sql/mojo/vfs_unittest.cc

Issue 1231493002: mandoline filesystem: Save cookie data to the mojo:filesystem. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Merge with ToT Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« sql/mojo/mojo_vfs.cc ('K') | « sql/mojo/sql_test_base.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "components/filesystem/public/interfaces/file_system.mojom.h" 5 #include "components/filesystem/public/interfaces/file_system.mojom.h"
6 #include "mojo/application/public/cpp/application_impl.h" 6 #include "mojo/application/public/cpp/application_impl.h"
7 #include "mojo/application/public/cpp/application_test_base.h" 7 #include "mojo/application/public/cpp/application_test_base.h"
8 #include "mojo/util/capture_util.h" 8 #include "mojo/util/capture_util.h"
9 #include "sql/mojo/mojo_vfs.h" 9 #include "sql/mojo/mojo_vfs.h"
10 #include "testing/gtest/include/gtest/gtest.h" 10 #include "testing/gtest/include/gtest/gtest.h"
(...skipping 12 matching lines...) Expand all
23 delete [] reinterpret_cast<uint8_t*>(ptr); 23 delete [] reinterpret_cast<uint8_t*>(ptr);
24 } 24 }
25 }; 25 };
26 26
27 } // namespace base 27 } // namespace base
28 28
29 namespace sql { 29 namespace sql {
30 30
31 const char kFileName[] = "TestingDatabase.db"; 31 const char kFileName[] = "TestingDatabase.db";
32 32
33 class VFSTest : public mojo::test::ApplicationTestBase { 33 class VFSTest : public mojo::test::ApplicationTestBase,
34 public filesystem::FileSystemClient {
34 public: 35 public:
35 VFSTest() {} 36 VFSTest() : binding_(this) {}
36 ~VFSTest() override {} 37 ~VFSTest() override {}
37 38
38 sqlite3_vfs* vfs() { 39 sqlite3_vfs* vfs() {
39 return sqlite3_vfs_find(NULL); 40 return sqlite3_vfs_find(NULL);
40 } 41 }
41 42
42 scoped_ptr<sqlite3_file> MakeFile() { 43 scoped_ptr<sqlite3_file> MakeFile() {
43 return scoped_ptr<sqlite3_file>(reinterpret_cast<sqlite3_file*>( 44 return scoped_ptr<sqlite3_file>(reinterpret_cast<sqlite3_file*>(
44 new uint8_t[vfs()->szOsFile])); 45 new uint8_t[vfs()->szOsFile]));
45 } 46 }
46 47
47 void SetUp() override { 48 void SetUp() override {
48 mojo::test::ApplicationTestBase::SetUp(); 49 mojo::test::ApplicationTestBase::SetUp();
49 50
50 mojo::URLRequestPtr request(mojo::URLRequest::New()); 51 mojo::URLRequestPtr request(mojo::URLRequest::New());
51 request->url = mojo::String::From("mojo:filesystem"); 52 request->url = mojo::String::From("mojo:filesystem");
52 application_impl()->ConnectToService(request.Pass(), &files_); 53 application_impl()->ConnectToService(request.Pass(), &files_);
53 54
55 filesystem::FileSystemClientPtr client;
56 binding_.Bind(GetProxy(&client));
57
54 filesystem::FileError error = filesystem::FILE_ERROR_FAILED; 58 filesystem::FileError error = filesystem::FILE_ERROR_FAILED;
55 filesystem::DirectoryPtr directory; 59 filesystem::DirectoryPtr directory;
56 files_->OpenFileSystem("temp", GetProxy(&directory), mojo::Capture(&error)); 60 files_->OpenFileSystem("temp", GetProxy(&directory), client.Pass(),
61 mojo::Capture(&error));
57 ASSERT_TRUE(files_.WaitForIncomingResponse()); 62 ASSERT_TRUE(files_.WaitForIncomingResponse());
58 ASSERT_EQ(filesystem::FILE_ERROR_OK, error); 63 ASSERT_EQ(filesystem::FILE_ERROR_OK, error);
59 64
60 vfs_.reset(new ScopedMojoFilesystemVFS(directory.Pass())); 65 vfs_.reset(new ScopedMojoFilesystemVFS(directory.Pass()));
61 } 66 }
62 67
63 void TearDown() override { 68 void TearDown() override {
64 vfs_.reset(); 69 vfs_.reset();
65 mojo::test::ApplicationTestBase::TearDown(); 70 mojo::test::ApplicationTestBase::TearDown();
66 } 71 }
67 72
73 void OnFileSystemShutdown() override {
74 }
75
68 private: 76 private:
69 filesystem::FileSystemPtr files_; 77 filesystem::FileSystemPtr files_;
70 scoped_ptr<ScopedMojoFilesystemVFS> vfs_; 78 scoped_ptr<ScopedMojoFilesystemVFS> vfs_;
79 mojo::Binding<filesystem::FileSystemClient> binding_;
71 80
72 DISALLOW_COPY_AND_ASSIGN(VFSTest); 81 DISALLOW_COPY_AND_ASSIGN(VFSTest);
73 }; 82 };
74 83
75 TEST_F(VFSTest, TestInstalled) { 84 TEST_F(VFSTest, TestInstalled) {
76 EXPECT_EQ("mojo", vfs()->zName); 85 EXPECT_EQ("mojo", vfs()->zName);
77 } 86 }
78 87
79 TEST_F(VFSTest, ExclusiveOpen) { 88 TEST_F(VFSTest, ExclusiveOpen) {
80 // Opening a non-existent file exclusively should work. 89 // Opening a non-existent file exclusively should work.
(...skipping 27 matching lines...) Expand all
108 scoped_ptr<sqlite3_file> file2(MakeFile()); 117 scoped_ptr<sqlite3_file> file2(MakeFile());
109 rc = vfs()->xOpen(vfs(), kFileName, file2.get(), 118 rc = vfs()->xOpen(vfs(), kFileName, file2.get(),
110 SQLITE_OPEN_CREATE | SQLITE_OPEN_READWRITE, 119 SQLITE_OPEN_CREATE | SQLITE_OPEN_READWRITE,
111 &out_flags); 120 &out_flags);
112 EXPECT_EQ(SQLITE_OK, rc); 121 EXPECT_EQ(SQLITE_OK, rc);
113 122
114 file->pMethods->xClose(file.get()); 123 file->pMethods->xClose(file.get());
115 file->pMethods->xClose(file2.get()); 124 file->pMethods->xClose(file2.get());
116 } 125 }
117 126
127 TEST_F(VFSTest, NullFilenameOpen) {
128 // Opening a file with a null filename should return a valid file object.
129 scoped_ptr<sqlite3_file> file(MakeFile());
130 int out_flags;
131 int rc = vfs()->xOpen(
132 vfs(), nullptr, file.get(),
133 SQLITE_OPEN_DELETEONCLOSE | SQLITE_OPEN_CREATE | SQLITE_OPEN_READWRITE,
134 &out_flags);
135 EXPECT_EQ(SQLITE_OK, rc);
136
137 file->pMethods->xClose(file.get());
138 }
139
118 TEST_F(VFSTest, DeleteOnClose) { 140 TEST_F(VFSTest, DeleteOnClose) {
119 { 141 {
120 scoped_ptr<sqlite3_file> file(MakeFile()); 142 scoped_ptr<sqlite3_file> file(MakeFile());
121 int out_flags; 143 int out_flags;
122 int rc = vfs()->xOpen( 144 int rc = vfs()->xOpen(
123 vfs(), kFileName, file.get(), 145 vfs(), kFileName, file.get(),
124 SQLITE_OPEN_DELETEONCLOSE | SQLITE_OPEN_CREATE | SQLITE_OPEN_READWRITE, 146 SQLITE_OPEN_DELETEONCLOSE | SQLITE_OPEN_CREATE | SQLITE_OPEN_READWRITE,
125 &out_flags); 147 &out_flags);
126 EXPECT_EQ(SQLITE_OK, rc); 148 EXPECT_EQ(SQLITE_OK, rc);
127 file->pMethods->xClose(file.get()); 149 file->pMethods->xClose(file.get());
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after
308 EXPECT_EQ(SQLITE_OK, rc); 330 EXPECT_EQ(SQLITE_OK, rc);
309 331
310 rc = file->pMethods->xFileSize(file.get(), &size); 332 rc = file->pMethods->xFileSize(file.get(), &size);
311 EXPECT_EQ(SQLITE_OK, rc); 333 EXPECT_EQ(SQLITE_OK, rc);
312 EXPECT_EQ(kCharsToThree, size); 334 EXPECT_EQ(kCharsToThree, size);
313 335
314 file->pMethods->xClose(file.get()); 336 file->pMethods->xClose(file.get());
315 } 337 }
316 338
317 } // namespace sql 339 } // namespace sql
OLDNEW
« sql/mojo/mojo_vfs.cc ('K') | « sql/mojo/sql_test_base.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698