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

Side by Side Diff: ppapi/proxy/file_chooser_resource_unittest.cc

Issue 21966004: Pepper: Move FileRef to the "new" resource proxy. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: CreateInfo/DetailedInfo rename Created 7 years, 4 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 | Annotate | Revision Log
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 #include "base/message_loop/message_loop.h" 5 #include "base/message_loop/message_loop.h"
6 #include "ppapi/c/dev/ppb_file_chooser_dev.h" 6 #include "ppapi/c/dev/ppb_file_chooser_dev.h"
7 #include "ppapi/c/pp_errors.h" 7 #include "ppapi/c/pp_errors.h"
8 #include "ppapi/c/ppb_file_ref.h"
8 #include "ppapi/proxy/file_chooser_resource.h" 9 #include "ppapi/proxy/file_chooser_resource.h"
9 #include "ppapi/proxy/locking_resource_releaser.h" 10 #include "ppapi/proxy/locking_resource_releaser.h"
10 #include "ppapi/proxy/ppapi_messages.h" 11 #include "ppapi/proxy/ppapi_messages.h"
11 #include "ppapi/proxy/ppapi_proxy_test.h" 12 #include "ppapi/proxy/ppapi_proxy_test.h"
12 #include "ppapi/shared_impl/proxy_lock.h" 13 #include "ppapi/shared_impl/proxy_lock.h"
13 #include "ppapi/shared_impl/scoped_pp_var.h" 14 #include "ppapi/shared_impl/scoped_pp_var.h"
14 #include "ppapi/shared_impl/var.h" 15 #include "ppapi/shared_impl/var.h"
15 #include "ppapi/thunk/thunk.h" 16 #include "ppapi/thunk/thunk.h"
16 17
17 namespace ppapi { 18 namespace ppapi {
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
84 ResourceMessageCallParams params; 85 ResourceMessageCallParams params;
85 IPC::Message msg; 86 IPC::Message msg;
86 ASSERT_TRUE(sink().GetFirstResourceCallMatching( 87 ASSERT_TRUE(sink().GetFirstResourceCallMatching(
87 PpapiHostMsg_FileChooser_Show::ID, &params, &msg)); 88 PpapiHostMsg_FileChooser_Show::ID, &params, &msg));
88 89
89 ResourceMessageReplyParams reply_params(params.pp_resource(), 90 ResourceMessageReplyParams reply_params(params.pp_resource(),
90 params.sequence()); 91 params.sequence());
91 reply_params.set_result(PP_OK); 92 reply_params.set_result(PP_OK);
92 93
93 // Synthesize a response with one file ref in it. Note that it must have a 94 // Synthesize a response with one file ref in it. Note that it must have a
94 // host resource value set or deserialization will fail. Since there isn't 95 // host resource value set or deserialization will fail. Since there isn't
yzshen1 2013/08/08 23:16:21 Please update the comment accordingly.
teravest 2013/08/09 02:00:08 Done.
95 // actually a host, this can be whatever we want. 96 // actually a host, this can be whatever we want.
96 std::vector<PPB_FileRef_CreateInfo> create_info_array; 97 std::vector<FileRefCreateInfo> create_info_array;
97 PPB_FileRef_CreateInfo create_info; 98 FileRefCreateInfo create_info;
98 create_info.resource.SetHostResource(pp_instance(), 123); 99 // In practice, we would be dealing with files on an external filesystem, but
99 create_info.path = "foo/bar"; 100 // plugins aren't allowed to create resources there, so we use LOCALTEMPORARY
100 create_info.name = "baz"; 101 // here instead.
102 create_info.file_system_type = PP_FILESYSTEMTYPE_LOCALTEMPORARY;
103 create_info.internal_path = "/foo/bar";
101 create_info_array.push_back(create_info); 104 create_info_array.push_back(create_info);
102 ASSERT_TRUE(plugin_dispatcher()->OnMessageReceived( 105 ASSERT_TRUE(plugin_dispatcher()->OnMessageReceived(
103 PpapiPluginMsg_ResourceReply(reply_params, 106 PpapiPluginMsg_ResourceReply(reply_params,
104 PpapiPluginMsg_FileChooser_ShowReply(create_info_array)))); 107 PpapiPluginMsg_FileChooser_ShowReply(create_info_array))));
105 108
106 // Should have populated our vector. 109 // Should have populated our vector.
107 ASSERT_EQ(1u, dest.size()); 110 ASSERT_EQ(1u, dest.size());
108 LockingResourceReleaser dest_deletor(dest[0]); // Ensure it's cleaned up. 111 LockingResourceReleaser dest_deletor(dest[0]); // Ensure it's cleaned up.
109 112
110 const PPB_FileRef_1_0* file_ref_iface = thunk::GetPPB_FileRef_1_0_Thunk(); 113 const PPB_FileRef_1_0* file_ref_iface = thunk::GetPPB_FileRef_1_0_Thunk();
111 EXPECT_EQ(PP_FILESYSTEMTYPE_EXTERNAL, 114 EXPECT_EQ(PP_FILESYSTEMTYPE_LOCALTEMPORARY,
112 file_ref_iface->GetFileSystemType(dest[0])); 115 file_ref_iface->GetFileSystemType(dest[0]));
113 116
114 PP_Var name_var(file_ref_iface->GetName(dest[0])); 117 PP_Var name_var(file_ref_iface->GetName(dest[0]));
115 { 118 {
116 ProxyAutoLock lock; 119 ProxyAutoLock lock;
117 ScopedPPVar release_name_var(ScopedPPVar::PassRef(), name_var); 120 ScopedPPVar release_name_var(ScopedPPVar::PassRef(), name_var);
118 EXPECT_VAR_IS_STRING(create_info.name, name_var); 121 EXPECT_VAR_IS_STRING("bar", name_var);
119 } 122 }
120 // Path should be undefined since it's external filesystem.
121 PP_Var path_var(file_ref_iface->GetPath(dest[0])); 123 PP_Var path_var(file_ref_iface->GetPath(dest[0]));
122 { 124 {
123 ProxyAutoLock lock; 125 ProxyAutoLock lock;
124 ScopedPPVar release_path_var(ScopedPPVar::PassRef(), path_var); 126 ScopedPPVar release_path_var(ScopedPPVar::PassRef(), path_var);
125 EXPECT_EQ(PP_VARTYPE_UNDEFINED, path_var.type); 127 EXPECT_VAR_IS_STRING(create_info.internal_path, path_var);
126 } 128 }
127 } 129 }
128 130
129 TEST_F(FileChooserResourceTest, PopulateAcceptTypes) { 131 TEST_F(FileChooserResourceTest, PopulateAcceptTypes) {
130 EXPECT_TRUE(CheckParseAcceptType(std::string(), NULL, NULL)); 132 EXPECT_TRUE(CheckParseAcceptType(std::string(), NULL, NULL));
131 EXPECT_TRUE(CheckParseAcceptType("/", NULL, NULL)); 133 EXPECT_TRUE(CheckParseAcceptType("/", NULL, NULL));
132 EXPECT_TRUE(CheckParseAcceptType(".", NULL, NULL)); 134 EXPECT_TRUE(CheckParseAcceptType(".", NULL, NULL));
133 EXPECT_TRUE(CheckParseAcceptType(",, , ", NULL, NULL)); 135 EXPECT_TRUE(CheckParseAcceptType(",, , ", NULL, NULL));
134 136
135 EXPECT_TRUE(CheckParseAcceptType("app/txt", "app/txt", NULL)); 137 EXPECT_TRUE(CheckParseAcceptType("app/txt", "app/txt", NULL));
136 EXPECT_TRUE(CheckParseAcceptType("app/txt,app/pdf", "app/txt", "app/pdf")); 138 EXPECT_TRUE(CheckParseAcceptType("app/txt,app/pdf", "app/txt", "app/pdf"));
137 EXPECT_TRUE(CheckParseAcceptType(" app/txt , app/pdf ", 139 EXPECT_TRUE(CheckParseAcceptType(" app/txt , app/pdf ",
138 "app/txt", "app/pdf")); 140 "app/txt", "app/pdf"));
139 141
140 // No dot or slash ones should be skipped. 142 // No dot or slash ones should be skipped.
141 EXPECT_TRUE(CheckParseAcceptType("foo", NULL, NULL)); 143 EXPECT_TRUE(CheckParseAcceptType("foo", NULL, NULL));
142 EXPECT_TRUE(CheckParseAcceptType("foo,.txt", ".txt", NULL)); 144 EXPECT_TRUE(CheckParseAcceptType("foo,.txt", ".txt", NULL));
143 } 145 }
144 146
145 } // namespace proxy 147 } // namespace proxy
146 } // namespace ppapi 148 } // namespace ppapi
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698