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

Side by Side Diff: native_client_sdk/src/libraries/nacl_io_test/mount_html5fs_test.cc

Issue 14784002: Move DirectoryReader::ReadEntries to FileRef::ReadDirectoryEntries (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: rebased Created 7 years, 7 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
OLDNEW
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 <fcntl.h> 6 #include <fcntl.h>
7 #include <string.h> 7 #include <string.h>
8 #include <gmock/gmock.h> 8 #include <gmock/gmock.h>
9 #include <ppapi/c/ppb_file_io.h> 9 #include <ppapi/c/ppb_file_io.h>
10 #include <ppapi/c/pp_directory_entry.h>
10 #include <ppapi/c/pp_errors.h> 11 #include <ppapi/c/pp_errors.h>
11 #include <ppapi/c/pp_instance.h> 12 #include <ppapi/c/pp_instance.h>
12 #if defined(WIN32) 13 #if defined(WIN32)
13 #include <windows.h> // For Sleep() 14 #include <windows.h> // For Sleep()
14 #endif 15 #endif
15 16
16 #include "mock_util.h" 17 #include "mock_util.h"
17 #include "nacl_io/mount_html5fs.h" 18 #include "nacl_io/mount_html5fs.h"
18 #include "nacl_io/osdirent.h" 19 #include "nacl_io/osdirent.h"
19 #include "pepper_interface_mock.h" 20 #include "pepper_interface_mock.h"
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after
166 }; 167 };
167 168
168 void MountHtml5FsNodeSyncTest::SetUp() { 169 void MountHtml5FsNodeSyncTest::SetUp() {
169 MountHtml5FsNodeTest::SetUp(); 170 MountHtml5FsNodeTest::SetUp();
170 SetUpFilesystemExpectations(PP_FILESYSTEMTYPE_LOCALPERSISTENT, 0); 171 SetUpFilesystemExpectations(PP_FILESYSTEMTYPE_LOCALPERSISTENT, 0);
171 InitFilesystem(); 172 InitFilesystem();
172 SetUpNodeExpectations(); 173 SetUpNodeExpectations();
173 InitNode(); 174 InitNode();
174 } 175 }
175 176
176 void ReadEntriesAction(const PP_ArrayOutput& output) { 177 void ReadDirectoryEntriesAction(const PP_ArrayOutput& output) {
177 const int fileref_resource_1 = 238; 178 const int fileref_resource_1 = 238;
178 const int fileref_resource_2 = 239; 179 const int fileref_resource_2 = 239;
179 180
180 std::vector<PP_DirectoryEntry_Dev> entries; 181 std::vector<PP_DirectoryEntry> entries;
181 PP_DirectoryEntry_Dev entry1 = { fileref_resource_1, PP_FILETYPE_REGULAR }; 182 PP_DirectoryEntry entry1 = { fileref_resource_1, PP_FILETYPE_REGULAR };
182 PP_DirectoryEntry_Dev entry2 = { fileref_resource_2, PP_FILETYPE_REGULAR }; 183 PP_DirectoryEntry entry2 = { fileref_resource_2, PP_FILETYPE_REGULAR };
183 entries.push_back(entry1); 184 entries.push_back(entry1);
184 entries.push_back(entry2); 185 entries.push_back(entry2);
185 186
186 void* dest = output.GetDataBuffer( 187 void* dest = output.GetDataBuffer(
187 output.user_data, 2, sizeof(PP_DirectoryEntry_Dev)); 188 output.user_data, 2, sizeof(PP_DirectoryEntry));
188 memcpy(dest, &entries[0], sizeof(PP_DirectoryEntry_Dev) * 2); 189 memcpy(dest, &entries[0], sizeof(PP_DirectoryEntry) * 2);
189 } 190 }
190 191
191 class MountHtml5FsNodeAsyncTest : public MountHtml5FsNodeTest { 192 class MountHtml5FsNodeAsyncTest : public MountHtml5FsNodeTest {
192 public: 193 public:
193 virtual void SetUp(); 194 virtual void SetUp();
194 virtual void TearDown(); 195 virtual void TearDown();
195 196
196 private: 197 private:
197 static void* ThreadThunk(void* param); 198 static void* ThreadThunk(void* param);
198 void Thread(); 199 void Thread();
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after
397 TEST_F(MountHtml5FsNodeSyncTest, Truncate) { 398 TEST_F(MountHtml5FsNodeSyncTest, Truncate) {
398 const int size = 123; 399 const int size = 123;
399 EXPECT_CALL(*fileio_, SetLength(fileio_resource_, size, _)) 400 EXPECT_CALL(*fileio_, SetLength(fileio_resource_, size, _))
400 .WillOnce(Return(int32_t(PP_OK))); 401 .WillOnce(Return(int32_t(PP_OK)));
401 402
402 int result = node_->Truncate(size); 403 int result = node_->Truncate(size);
403 EXPECT_EQ(0, result); 404 EXPECT_EQ(0, result);
404 } 405 }
405 406
406 TEST_F(MountHtml5FsNodeSyncTest, GetDents) { 407 TEST_F(MountHtml5FsNodeSyncTest, GetDents) {
407 const int dir_reader_resource = 237;
408 const int fileref_resource_1 = 238; 408 const int fileref_resource_1 = 238;
409 const int fileref_resource_2 = 239; 409 const int fileref_resource_2 = 239;
410 410
411 const int fileref_name_id_1 = 240; 411 const int fileref_name_id_1 = 240;
412 const char fileref_name_cstr_1[] = "bar"; 412 const char fileref_name_cstr_1[] = "bar";
413 PP_Var fileref_name_1; 413 PP_Var fileref_name_1;
414 fileref_name_1.type = PP_VARTYPE_STRING; 414 fileref_name_1.type = PP_VARTYPE_STRING;
415 fileref_name_1.value.as_id = fileref_name_id_1; 415 fileref_name_1.value.as_id = fileref_name_id_1;
416 416
417 const int fileref_name_id_2 = 241; 417 const int fileref_name_id_2 = 241;
418 const char fileref_name_cstr_2[] = "quux"; 418 const char fileref_name_cstr_2[] = "quux";
419 PP_Var fileref_name_2; 419 PP_Var fileref_name_2;
420 fileref_name_2.type = PP_VARTYPE_STRING; 420 fileref_name_2.type = PP_VARTYPE_STRING;
421 fileref_name_2.value.as_id = fileref_name_id_2; 421 fileref_name_2.value.as_id = fileref_name_id_2;
422 422
423 VarInterfaceMock* var = ppapi_->GetVarInterface(); 423 VarInterfaceMock* var = ppapi_->GetVarInterface();
424 DirectoryReaderInterfaceMock* dir_reader =
425 ppapi_->GetDirectoryReaderInterface();
426 424
427 EXPECT_CALL(*dir_reader, Create(fileref_resource_)) 425 EXPECT_CALL(*fileref_, ReadDirectoryEntries(fileref_resource_, _, _))
428 .WillOnce(Return(dir_reader_resource)); 426 .WillOnce(DoAll(WithArgs<1>(Invoke(ReadDirectoryEntriesAction)),
429 EXPECT_CALL(*dir_reader, ReadEntries(dir_reader_resource, _, _))
430 .WillOnce(DoAll(WithArgs<1>(Invoke(ReadEntriesAction)),
431 Return(int32_t(PP_OK)))); 427 Return(int32_t(PP_OK))));
432 428
433 EXPECT_CALL(*fileref_, GetName(fileref_resource_1)) 429 EXPECT_CALL(*fileref_, GetName(fileref_resource_1))
434 .WillOnce(Return(fileref_name_1)); 430 .WillOnce(Return(fileref_name_1));
435 EXPECT_CALL(*fileref_, GetName(fileref_resource_2)) 431 EXPECT_CALL(*fileref_, GetName(fileref_resource_2))
436 .WillOnce(Return(fileref_name_2)); 432 .WillOnce(Return(fileref_name_2));
437 433
438 EXPECT_CALL(*var, VarToUtf8(IsEqualToVar(fileref_name_1), _)) 434 EXPECT_CALL(*var, VarToUtf8(IsEqualToVar(fileref_name_1), _))
439 .WillOnce(Return(fileref_name_cstr_1)); 435 .WillOnce(Return(fileref_name_cstr_1));
440 EXPECT_CALL(*var, VarToUtf8(IsEqualToVar(fileref_name_2), _)) 436 EXPECT_CALL(*var, VarToUtf8(IsEqualToVar(fileref_name_2), _))
441 .WillOnce(Return(fileref_name_cstr_2)); 437 .WillOnce(Return(fileref_name_cstr_2));
442 438
443 EXPECT_CALL(*ppapi_, ReleaseResource(dir_reader_resource));
444 EXPECT_CALL(*ppapi_, ReleaseResource(fileref_resource_1)); 439 EXPECT_CALL(*ppapi_, ReleaseResource(fileref_resource_1));
445 EXPECT_CALL(*ppapi_, ReleaseResource(fileref_resource_2)); 440 EXPECT_CALL(*ppapi_, ReleaseResource(fileref_resource_2));
446 441
447 struct dirent dirents[2]; 442 struct dirent dirents[2];
448 memset(&dirents[0], 0, sizeof(dirents)); 443 memset(&dirents[0], 0, sizeof(dirents));
449 int result = node_->GetDents(0, &dirents[0], sizeof(dirent) * 2); 444 int result = node_->GetDents(0, &dirents[0], sizeof(dirent) * 2);
450 445
451 EXPECT_EQ(0, result); 446 EXPECT_EQ(0, result);
452 EXPECT_STREQ(&fileref_name_cstr_1[0], &dirents[0].d_name[0]); 447 EXPECT_STREQ(&fileref_name_cstr_1[0], &dirents[0].d_name[0]);
453 EXPECT_STREQ(&fileref_name_cstr_2[0], &dirents[1].d_name[0]); 448 EXPECT_STREQ(&fileref_name_cstr_2[0], &dirents[1].d_name[0]);
454 } 449 }
OLDNEW
« no previous file with comments | « native_client_sdk/src/libraries/nacl_io/pepper_interface.h ('k') | ppapi/api/dev/ppb_directory_reader_dev.idl » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698