OLD | NEW |
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 "sql/mojo/sql_test_base.h" | 5 #include "sql/mojo/sql_test_base.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 #include <utility> | 9 #include <utility> |
10 | 10 |
(...skipping 20 matching lines...) Expand all Loading... |
31 sql::Connection& SQLTestBase::db() { | 31 sql::Connection& SQLTestBase::db() { |
32 return db_; | 32 return db_; |
33 } | 33 } |
34 | 34 |
35 bool SQLTestBase::Reopen() { | 35 bool SQLTestBase::Reopen() { |
36 db_.Close(); | 36 db_.Close(); |
37 return db_.Open(db_path()); | 37 return db_.Open(db_path()); |
38 } | 38 } |
39 | 39 |
40 bool SQLTestBase::GetPathExists(const base::FilePath& path) { | 40 bool SQLTestBase::GetPathExists(const base::FilePath& path) { |
41 filesystem::FileError error = filesystem::FILE_ERROR_FAILED; | 41 filesystem::FileError error = filesystem::FileError::FAILED; |
42 bool exists = false; | 42 bool exists = false; |
43 vfs_->GetDirectory()->Exists(path.AsUTF8Unsafe(), Capture(&error, &exists)); | 43 vfs_->GetDirectory()->Exists(path.AsUTF8Unsafe(), Capture(&error, &exists)); |
44 vfs_->GetDirectory().WaitForIncomingResponse(); | 44 vfs_->GetDirectory().WaitForIncomingResponse(); |
45 if (error != filesystem::FILE_ERROR_OK) | 45 if (error != filesystem::FileError::OK) |
46 return false; | 46 return false; |
47 return exists; | 47 return exists; |
48 } | 48 } |
49 | 49 |
50 bool SQLTestBase::CorruptSizeInHeaderOfDB() { | 50 bool SQLTestBase::CorruptSizeInHeaderOfDB() { |
51 // See http://www.sqlite.org/fileformat.html#database_header | 51 // See http://www.sqlite.org/fileformat.html#database_header |
52 const size_t kHeaderSize = 100; | 52 const size_t kHeaderSize = 100; |
53 | 53 |
54 mojo::Array<uint8_t> header; | 54 mojo::Array<uint8_t> header; |
55 | 55 |
56 filesystem::FileError error = filesystem::FILE_ERROR_FAILED; | 56 filesystem::FileError error = filesystem::FileError::FAILED; |
57 filesystem::FilePtr file_ptr; | 57 filesystem::FilePtr file_ptr; |
58 vfs_->GetDirectory()->OpenFile( | 58 vfs_->GetDirectory()->OpenFile( |
59 mojo::String(db_path().AsUTF8Unsafe()), GetProxy(&file_ptr), | 59 mojo::String(db_path().AsUTF8Unsafe()), GetProxy(&file_ptr), |
60 filesystem::kFlagRead | filesystem::kFlagWrite | | 60 filesystem::kFlagRead | filesystem::kFlagWrite | |
61 filesystem::kFlagOpenAlways, | 61 filesystem::kFlagOpenAlways, |
62 Capture(&error)); | 62 Capture(&error)); |
63 vfs_->GetDirectory().WaitForIncomingResponse(); | 63 vfs_->GetDirectory().WaitForIncomingResponse(); |
64 if (error != filesystem::FILE_ERROR_OK) | 64 if (error != filesystem::FileError::OK) |
65 return false; | 65 return false; |
66 | 66 |
67 file_ptr->Read(kHeaderSize, 0, filesystem::WHENCE_FROM_BEGIN, | 67 file_ptr->Read(kHeaderSize, 0, filesystem::Whence::FROM_BEGIN, |
68 Capture(&error, &header)); | 68 Capture(&error, &header)); |
69 file_ptr.WaitForIncomingResponse(); | 69 file_ptr.WaitForIncomingResponse(); |
70 if (error != filesystem::FILE_ERROR_OK) | 70 if (error != filesystem::FileError::OK) |
71 return false; | 71 return false; |
72 | 72 |
73 filesystem::FileInformationPtr info; | 73 filesystem::FileInformationPtr info; |
74 file_ptr->Stat(Capture(&error, &info)); | 74 file_ptr->Stat(Capture(&error, &info)); |
75 file_ptr.WaitForIncomingResponse(); | 75 file_ptr.WaitForIncomingResponse(); |
76 if (error != filesystem::FILE_ERROR_OK) | 76 if (error != filesystem::FileError::OK) |
77 return false; | 77 return false; |
78 int64_t db_size = info->size; | 78 int64_t db_size = info->size; |
79 | 79 |
80 test::CorruptSizeInHeaderMemory(&header.front(), db_size); | 80 test::CorruptSizeInHeaderMemory(&header.front(), db_size); |
81 | 81 |
82 uint32_t num_bytes_written = 0; | 82 uint32_t num_bytes_written = 0; |
83 file_ptr->Write(std::move(header), 0, filesystem::WHENCE_FROM_BEGIN, | 83 file_ptr->Write(std::move(header), 0, filesystem::Whence::FROM_BEGIN, |
84 Capture(&error, &num_bytes_written)); | 84 Capture(&error, &num_bytes_written)); |
85 file_ptr.WaitForIncomingResponse(); | 85 file_ptr.WaitForIncomingResponse(); |
86 if (error != filesystem::FILE_ERROR_OK) | 86 if (error != filesystem::FileError::OK) |
87 return false; | 87 return false; |
88 if (num_bytes_written != kHeaderSize) | 88 if (num_bytes_written != kHeaderSize) |
89 return false; | 89 return false; |
90 | 90 |
91 return true; | 91 return true; |
92 } | 92 } |
93 | 93 |
94 void SQLTestBase::WriteJunkToDatabase(WriteJunkType type) { | 94 void SQLTestBase::WriteJunkToDatabase(WriteJunkType type) { |
95 uint32_t flags = 0; | 95 uint32_t flags = 0; |
96 if (type == TYPE_OVERWRITE_AND_TRUNCATE) | 96 if (type == TYPE_OVERWRITE_AND_TRUNCATE) |
97 flags = filesystem::kFlagWrite | filesystem::kFlagCreate; | 97 flags = filesystem::kFlagWrite | filesystem::kFlagCreate; |
98 else | 98 else |
99 flags = filesystem::kFlagWrite | filesystem::kFlagOpen; | 99 flags = filesystem::kFlagWrite | filesystem::kFlagOpen; |
100 | 100 |
101 filesystem::FileError error = filesystem::FILE_ERROR_FAILED; | 101 filesystem::FileError error = filesystem::FileError::FAILED; |
102 filesystem::FilePtr file_ptr; | 102 filesystem::FilePtr file_ptr; |
103 vfs_->GetDirectory()->OpenFile( | 103 vfs_->GetDirectory()->OpenFile( |
104 mojo::String(db_path().AsUTF8Unsafe()), GetProxy(&file_ptr), | 104 mojo::String(db_path().AsUTF8Unsafe()), GetProxy(&file_ptr), |
105 flags, | 105 flags, |
106 Capture(&error)); | 106 Capture(&error)); |
107 vfs_->GetDirectory().WaitForIncomingResponse(); | 107 vfs_->GetDirectory().WaitForIncomingResponse(); |
108 if (error != filesystem::FILE_ERROR_OK) | 108 if (error != filesystem::FileError::OK) |
109 return; | 109 return; |
110 | 110 |
111 const char* kJunk = "Now is the winter of our discontent."; | 111 const char* kJunk = "Now is the winter of our discontent."; |
112 mojo::Array<uint8_t> data(strlen(kJunk)); | 112 mojo::Array<uint8_t> data(strlen(kJunk)); |
113 memcpy(&data.front(), kJunk, strlen(kJunk)); | 113 memcpy(&data.front(), kJunk, strlen(kJunk)); |
114 | 114 |
115 uint32_t num_bytes_written = 0; | 115 uint32_t num_bytes_written = 0; |
116 file_ptr->Write(std::move(data), 0, filesystem::WHENCE_FROM_BEGIN, | 116 file_ptr->Write(std::move(data), 0, filesystem::Whence::FROM_BEGIN, |
117 Capture(&error, &num_bytes_written)); | 117 Capture(&error, &num_bytes_written)); |
118 file_ptr.WaitForIncomingResponse(); | 118 file_ptr.WaitForIncomingResponse(); |
119 } | 119 } |
120 | 120 |
121 void SQLTestBase::TruncateDatabase() { | 121 void SQLTestBase::TruncateDatabase() { |
122 filesystem::FileError error = filesystem::FILE_ERROR_FAILED; | 122 filesystem::FileError error = filesystem::FileError::FAILED; |
123 filesystem::FilePtr file_ptr; | 123 filesystem::FilePtr file_ptr; |
124 vfs_->GetDirectory()->OpenFile( | 124 vfs_->GetDirectory()->OpenFile( |
125 mojo::String(db_path().AsUTF8Unsafe()), GetProxy(&file_ptr), | 125 mojo::String(db_path().AsUTF8Unsafe()), GetProxy(&file_ptr), |
126 filesystem::kFlagWrite | filesystem::kFlagOpen, | 126 filesystem::kFlagWrite | filesystem::kFlagOpen, |
127 Capture(&error)); | 127 Capture(&error)); |
128 vfs_->GetDirectory().WaitForIncomingResponse(); | 128 vfs_->GetDirectory().WaitForIncomingResponse(); |
129 if (error != filesystem::FILE_ERROR_OK) | 129 if (error != filesystem::FileError::OK) |
130 return; | 130 return; |
131 | 131 |
132 file_ptr->Truncate(0, Capture(&error)); | 132 file_ptr->Truncate(0, Capture(&error)); |
133 file_ptr.WaitForIncomingResponse(); | 133 file_ptr.WaitForIncomingResponse(); |
134 ASSERT_EQ(filesystem::FILE_ERROR_OK, error); | 134 ASSERT_EQ(filesystem::FileError::OK, error); |
135 } | 135 } |
136 | 136 |
137 void SQLTestBase::SetUp() { | 137 void SQLTestBase::SetUp() { |
138 ApplicationTestBase::SetUp(); | 138 ApplicationTestBase::SetUp(); |
139 | 139 |
140 application_impl()->ConnectToService("mojo:filesystem", &files_); | 140 application_impl()->ConnectToService("mojo:filesystem", &files_); |
141 | 141 |
142 filesystem::FileSystemClientPtr client; | 142 filesystem::FileSystemClientPtr client; |
143 binding_.Bind(GetProxy(&client)); | 143 binding_.Bind(GetProxy(&client)); |
144 | 144 |
145 filesystem::FileError error = filesystem::FILE_ERROR_FAILED; | 145 filesystem::FileError error = filesystem::FileError::FAILED; |
146 filesystem::DirectoryPtr directory; | 146 filesystem::DirectoryPtr directory; |
147 files()->OpenFileSystem("temp", GetProxy(&directory), std::move(client), | 147 files()->OpenFileSystem("temp", GetProxy(&directory), std::move(client), |
148 Capture(&error)); | 148 Capture(&error)); |
149 ASSERT_TRUE(files().WaitForIncomingResponse()); | 149 ASSERT_TRUE(files().WaitForIncomingResponse()); |
150 ASSERT_EQ(filesystem::FILE_ERROR_OK, error); | 150 ASSERT_EQ(filesystem::FileError::OK, error); |
151 | 151 |
152 vfs_.reset(new ScopedMojoFilesystemVFS(std::move(directory))); | 152 vfs_.reset(new ScopedMojoFilesystemVFS(std::move(directory))); |
153 ASSERT_TRUE(db_.Open(db_path())); | 153 ASSERT_TRUE(db_.Open(db_path())); |
154 } | 154 } |
155 | 155 |
156 void SQLTestBase::TearDown() { | 156 void SQLTestBase::TearDown() { |
157 db_.Close(); | 157 db_.Close(); |
158 vfs_.reset(); | 158 vfs_.reset(); |
159 | 159 |
160 ApplicationTestBase::TearDown(); | 160 ApplicationTestBase::TearDown(); |
161 } | 161 } |
162 | 162 |
163 void SQLTestBase::OnFileSystemShutdown() { | 163 void SQLTestBase::OnFileSystemShutdown() { |
164 } | 164 } |
165 | 165 |
166 } // namespace sql | 166 } // namespace sql |
OLD | NEW |