OLD | NEW |
1 /* Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 /* Copyright (c) 2012 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 | 5 |
6 #include <errno.h> | 6 #include <errno.h> |
7 #include <fcntl.h> | 7 #include <fcntl.h> |
8 #include <string.h> | 8 #include <string.h> |
9 #include <gmock/gmock.h> | 9 #include <gmock/gmock.h> |
10 #include <ppapi/c/ppb_file_io.h> | 10 #include <ppapi/c/ppb_file_io.h> |
(...skipping 301 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
312 | 312 |
313 TEST_F(MountHtml5FsTest, FilesystemType) { | 313 TEST_F(MountHtml5FsTest, FilesystemType) { |
314 SetUpFilesystemExpectations(PP_FILESYSTEMTYPE_LOCALPERSISTENT, 100); | 314 SetUpFilesystemExpectations(PP_FILESYSTEMTYPE_LOCALPERSISTENT, 100); |
315 | 315 |
316 StringMap_t map; | 316 StringMap_t map; |
317 map["type"] = "PERSISTENT"; | 317 map["type"] = "PERSISTENT"; |
318 map["expected_size"] = "100"; | 318 map["expected_size"] = "100"; |
319 MountHtml5FsMock mnt(map, ppapi_); | 319 MountHtml5FsMock mnt(map, ppapi_); |
320 } | 320 } |
321 | 321 |
| 322 TEST_F(MountHtml5FsTest, Access) { |
| 323 const char path[] = "/foo"; |
| 324 const PP_Resource fileref_resource = 235; |
| 325 const PP_Resource fileio_resource = 236; |
| 326 |
| 327 // These are the default values. |
| 328 SetUpFilesystemExpectations(PP_FILESYSTEMTYPE_LOCALPERSISTENT, 0); |
| 329 |
| 330 FileRefInterfaceMock* fileref = ppapi_->GetFileRefInterface(); |
| 331 FileIoInterfaceMock* fileio = ppapi_->GetFileIoInterface(); |
| 332 |
| 333 // First, report the file as missing. Then, report the file as present. |
| 334 EXPECT_CALL(*fileref, Create(filesystem_resource_, StrEq(&path[0]))) |
| 335 .WillOnce(Return(0)) |
| 336 .WillOnce(Return(fileref_resource)); |
| 337 PP_FileInfo info; |
| 338 memset(&info, 0, sizeof(PP_FileInfo)); |
| 339 info.type = PP_FILETYPE_REGULAR; |
| 340 EXPECT_CALL(*fileref, Query(fileref_resource, _, _)) |
| 341 .WillOnce(DoAll(SetArgPointee<1>(info), |
| 342 Return(int32_t(PP_OK)))); |
| 343 EXPECT_CALL(*fileio, Create(instance_)).WillOnce(Return(fileio_resource)); |
| 344 int32_t open_flags = PP_FILEOPENFLAG_READ; |
| 345 EXPECT_CALL(*fileio, |
| 346 Open(fileio_resource, fileref_resource, open_flags, _)) |
| 347 .WillOnce(Return(int32_t(PP_OK))); |
| 348 EXPECT_CALL(*fileio, Close(fileio_resource)); |
| 349 EXPECT_CALL(*fileio, Flush(fileio_resource, _)); |
| 350 EXPECT_CALL(*ppapi_, ReleaseResource(fileio_resource)); |
| 351 EXPECT_CALL(*ppapi_, ReleaseResource(fileref_resource)); |
| 352 |
| 353 StringMap_t map; |
| 354 MountHtml5FsMock mnt(map, ppapi_); |
| 355 |
| 356 // The first time, the mock will report the file as missing. |
| 357 ASSERT_EQ(ENOENT, mnt.Access(Path(path), F_OK)); |
| 358 // The second time, the mock will report the file as present. |
| 359 ASSERT_EQ(0, mnt.Access(Path(path), R_OK | W_OK | X_OK)); |
| 360 } |
| 361 |
322 TEST_F(MountHtml5FsTest, Mkdir) { | 362 TEST_F(MountHtml5FsTest, Mkdir) { |
323 const char path[] = "/foo"; | 363 const char path[] = "/foo"; |
324 const PP_Resource fileref_resource = 235; | 364 const PP_Resource fileref_resource = 235; |
325 | 365 |
326 // These are the default values. | 366 // These are the default values. |
327 SetUpFilesystemExpectations(PP_FILESYSTEMTYPE_LOCALPERSISTENT, 0); | 367 SetUpFilesystemExpectations(PP_FILESYSTEMTYPE_LOCALPERSISTENT, 0); |
328 | 368 |
329 FileRefInterfaceMock* fileref = ppapi_->GetFileRefInterface(); | 369 FileRefInterfaceMock* fileref = ppapi_->GetFileRefInterface(); |
330 | 370 |
331 EXPECT_CALL(*fileref, Create(filesystem_resource_, StrEq(&path[0]))) | 371 EXPECT_CALL(*fileref, Create(filesystem_resource_, StrEq(&path[0]))) |
(...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
551 ASSERT_EQ(sizeof(dirent) * 2, result_bytes); | 591 ASSERT_EQ(sizeof(dirent) * 2, result_bytes); |
552 EXPECT_LT(0, dirents[0].d_ino); // 0 is an invalid inode number. | 592 EXPECT_LT(0, dirents[0].d_ino); // 0 is an invalid inode number. |
553 EXPECT_EQ(sizeof(dirent), dirents[0].d_off); | 593 EXPECT_EQ(sizeof(dirent), dirents[0].d_off); |
554 EXPECT_EQ(sizeof(dirent), dirents[0].d_reclen); | 594 EXPECT_EQ(sizeof(dirent), dirents[0].d_reclen); |
555 EXPECT_STREQ(fileref_name_cstr_1, dirents[0].d_name); | 595 EXPECT_STREQ(fileref_name_cstr_1, dirents[0].d_name); |
556 EXPECT_LT(0, dirents[1].d_ino); // 0 is an invalid inode number. | 596 EXPECT_LT(0, dirents[1].d_ino); // 0 is an invalid inode number. |
557 EXPECT_EQ(sizeof(dirent), dirents[1].d_off); | 597 EXPECT_EQ(sizeof(dirent), dirents[1].d_off); |
558 EXPECT_EQ(sizeof(dirent), dirents[1].d_reclen); | 598 EXPECT_EQ(sizeof(dirent), dirents[1].d_reclen); |
559 EXPECT_STREQ(fileref_name_cstr_2, dirents[1].d_name); | 599 EXPECT_STREQ(fileref_name_cstr_2, dirents[1].d_name); |
560 } | 600 } |
OLD | NEW |