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

Side by Side Diff: chrome/browser/google_apis/fake_drive_service_unittest.cc

Issue 12207075: Split InitiateUpload method into two. (Closed) Base URL: http://git.chromium.org/chromium/src.git@b148632_extract_initiate_upload_operation_base
Patch Set: Created 7 years, 10 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 #include "chrome/browser/google_apis/fake_drive_service.h" 5 #include "chrome/browser/google_apis/fake_drive_service.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/file_util.h" 9 #include "base/file_util.h"
10 #include "base/files/scoped_temp_dir.h" 10 #include "base/files/scoped_temp_dir.h"
(...skipping 1021 matching lines...) Expand 10 before | Expand all | Expand 10 after
1032 "new directory", 1032 "new directory",
1033 base::Bind(&test_util::CopyResultsFromGetResourceEntryCallback, 1033 base::Bind(&test_util::CopyResultsFromGetResourceEntryCallback,
1034 &error, 1034 &error,
1035 &resource_entry)); 1035 &resource_entry));
1036 message_loop_.RunUntilIdle(); 1036 message_loop_.RunUntilIdle();
1037 1037
1038 EXPECT_EQ(GDATA_NO_CONNECTION, error); 1038 EXPECT_EQ(GDATA_NO_CONNECTION, error);
1039 EXPECT_FALSE(resource_entry); 1039 EXPECT_FALSE(resource_entry);
1040 } 1040 }
1041 1041
1042 TEST_F(FakeDriveServiceTest, InitiateUpload_Offline) { 1042 TEST_F(FakeDriveServiceTest, InitiateUploadNewFile_Offline) {
1043 ASSERT_TRUE(fake_service_.LoadResourceListForWapi("gdata/root_feed.json")); 1043 ASSERT_TRUE(fake_service_.LoadResourceListForWapi("gdata/root_feed.json"));
1044 fake_service_.set_offline(true); 1044 fake_service_.set_offline(true);
1045 1045
1046 GDataErrorCode error = GDATA_OTHER_ERROR; 1046 GDataErrorCode error = GDATA_OTHER_ERROR;
1047 GURL upload_location; 1047 GURL upload_location;
1048 fake_service_.InitiateUpload( 1048 fake_service_.InitiateUploadNewFile(
1049 InitiateUploadParams( 1049 FilePath(FILE_PATH_LITERAL("drive/Directory 1")),
1050 UPLOAD_NEW_FILE, 1050 "test/foo",
1051 "new file.foo", 1051 13,
1052 "test/foo", 1052 GURL("https://1_folder_resumable_create_media_link"),
1053 13, 1053 "new file.foo",
1054 GURL("https://1_folder_resumable_create_media_link"),
1055 FilePath(FILE_PATH_LITERAL("drive/Directory 1")),
1056 "etag_ignored"),
1057 base::Bind(&test_util::CopyResultsFromInitiateUploadCallback, 1054 base::Bind(&test_util::CopyResultsFromInitiateUploadCallback,
1058 &error, 1055 &error,
1059 &upload_location)); 1056 &upload_location));
1060 message_loop_.RunUntilIdle(); 1057 message_loop_.RunUntilIdle();
1061 1058
1062 EXPECT_EQ(GDATA_NO_CONNECTION, error); 1059 EXPECT_EQ(GDATA_NO_CONNECTION, error);
1063 EXPECT_TRUE(upload_location.is_empty()); 1060 EXPECT_TRUE(upload_location.is_empty());
1064 } 1061 }
1065 1062
1066 TEST_F(FakeDriveServiceTest, InitiateUpload_NotFound) { 1063 TEST_F(FakeDriveServiceTest, InitiateUploadNewFile_NotFound) {
1067 ASSERT_TRUE(fake_service_.LoadResourceListForWapi("gdata/root_feed.json")); 1064 ASSERT_TRUE(fake_service_.LoadResourceListForWapi("gdata/root_feed.json"));
1068 1065
1069 GDataErrorCode error = GDATA_OTHER_ERROR; 1066 GDataErrorCode error = GDATA_OTHER_ERROR;
1070 GURL upload_location; 1067 GURL upload_location;
1071 fake_service_.InitiateUpload( 1068 fake_service_.InitiateUploadNewFile(
1072 InitiateUploadParams( 1069 FilePath(FILE_PATH_LITERAL("drive/Directory 1")),
1073 UPLOAD_NEW_FILE, 1070 "test/foo",
1074 "new file.foo", 1071 13,
1075 "test/foo", 1072 GURL("https://non_existent"),
1076 13, 1073 "new file.foo",
1077 GURL("https://non_existent"),
1078 FilePath(FILE_PATH_LITERAL("drive/Directory 1")),
1079 "etag_ignored"),
1080 base::Bind(&test_util::CopyResultsFromInitiateUploadCallback, 1074 base::Bind(&test_util::CopyResultsFromInitiateUploadCallback,
1081 &error, 1075 &error,
1082 &upload_location)); 1076 &upload_location));
1083 message_loop_.RunUntilIdle(); 1077 message_loop_.RunUntilIdle();
1084 1078
1085 EXPECT_EQ(HTTP_NOT_FOUND, error); 1079 EXPECT_EQ(HTTP_NOT_FOUND, error);
1086 EXPECT_TRUE(upload_location.is_empty()); 1080 EXPECT_TRUE(upload_location.is_empty());
1087 } 1081 }
1088 1082
1089 TEST_F(FakeDriveServiceTest, InitiateUpload_NewFile) { 1083 TEST_F(FakeDriveServiceTest, InitiateUploadNewFile) {
1090 ASSERT_TRUE(fake_service_.LoadResourceListForWapi("gdata/root_feed.json")); 1084 ASSERT_TRUE(fake_service_.LoadResourceListForWapi("gdata/root_feed.json"));
1091 1085
1092 GDataErrorCode error = GDATA_OTHER_ERROR; 1086 GDataErrorCode error = GDATA_OTHER_ERROR;
1093 GURL upload_location; 1087 GURL upload_location;
1094 fake_service_.InitiateUpload( 1088 fake_service_.InitiateUploadNewFile(
1095 InitiateUploadParams( 1089 FilePath(FILE_PATH_LITERAL("drive/Directory 1")),
1096 UPLOAD_NEW_FILE, 1090 "test/foo",
1097 "new file.foo", 1091 13,
1098 "test/foo", 1092 GURL("https://1_folder_resumable_create_media_link"),
1099 13, 1093 "new file.foo",
1100 GURL("https://1_folder_resumable_create_media_link"),
1101 FilePath(FILE_PATH_LITERAL("drive/Directory 1")),
1102 "etag_ignored"),
1103 base::Bind(&test_util::CopyResultsFromInitiateUploadCallback, 1094 base::Bind(&test_util::CopyResultsFromInitiateUploadCallback,
1104 &error, 1095 &error,
1105 &upload_location)); 1096 &upload_location));
1106 message_loop_.RunUntilIdle(); 1097 message_loop_.RunUntilIdle();
1107 1098
1108 EXPECT_EQ(HTTP_SUCCESS, error); 1099 EXPECT_EQ(HTTP_SUCCESS, error);
1109 EXPECT_FALSE(upload_location.is_empty()); 1100 EXPECT_FALSE(upload_location.is_empty());
1110 EXPECT_NE(GURL("https://1_folder_resumable_create_media_link"), 1101 EXPECT_NE(GURL("https://1_folder_resumable_create_media_link"),
1111 upload_location); 1102 upload_location);
1112 } 1103 }
1113 1104
1114 TEST_F(FakeDriveServiceTest, InitiateUpload_WrongETag) { 1105 TEST_F(FakeDriveServiceTest, InitiateUploadExistingFile_Offline) {
1106 ASSERT_TRUE(fake_service_.LoadResourceListForWapi("gdata/root_feed.json"));
1107 fake_service_.set_offline(true);
1108
1109 GDataErrorCode error = GDATA_OTHER_ERROR;
1110 GURL upload_location;
1111 fake_service_.InitiateUploadExistingFile(
1112 FilePath(FILE_PATH_LITERAL("drive/Directory 1")),
1113 "test/foo",
1114 13,
1115 GURL("https://1_folder_resumable_create_media_link"),
1116 "", // etag
1117 base::Bind(&test_util::CopyResultsFromInitiateUploadCallback,
1118 &error,
1119 &upload_location));
1120 message_loop_.RunUntilIdle();
1121
1122 EXPECT_EQ(GDATA_NO_CONNECTION, error);
1123 EXPECT_TRUE(upload_location.is_empty());
1124 }
1125
1126 TEST_F(FakeDriveServiceTest, InitiateUploadExistingFile_NotFound) {
1115 ASSERT_TRUE(fake_service_.LoadResourceListForWapi("gdata/root_feed.json")); 1127 ASSERT_TRUE(fake_service_.LoadResourceListForWapi("gdata/root_feed.json"));
1116 1128
1117 GDataErrorCode error = GDATA_OTHER_ERROR; 1129 GDataErrorCode error = GDATA_OTHER_ERROR;
1118 GURL upload_location; 1130 GURL upload_location;
1119 fake_service_.InitiateUpload( 1131 fake_service_.InitiateUploadExistingFile(
1120 InitiateUploadParams( 1132 FilePath(FILE_PATH_LITERAL("drive/Directory 1")),
1121 UPLOAD_EXISTING_FILE, 1133 "test/foo",
1122 "name_ignored", 1134 13,
1123 "text/plain", 1135 GURL("https://non_existent"),
1124 13, 1136 "", // etag
1125 GURL("https://2_file_link_resumable_create_media"),
1126 FilePath(FILE_PATH_LITERAL("drive/File 1.txt")),
1127 "invalid_etag"),
1128 base::Bind(&test_util::CopyResultsFromInitiateUploadCallback, 1137 base::Bind(&test_util::CopyResultsFromInitiateUploadCallback,
1129 &error, 1138 &error,
1130 &upload_location)); 1139 &upload_location));
1140 message_loop_.RunUntilIdle();
1141
1142 EXPECT_EQ(HTTP_NOT_FOUND, error);
1143 EXPECT_TRUE(upload_location.is_empty());
1144 }
1145
1146 TEST_F(FakeDriveServiceTest, InitiateUploadExistingFile_WrongETag) {
1147 ASSERT_TRUE(fake_service_.LoadResourceListForWapi("gdata/root_feed.json"));
1148
1149 GDataErrorCode error = GDATA_OTHER_ERROR;
1150 GURL upload_location;
1151 fake_service_.InitiateUploadExistingFile(
1152 FilePath(FILE_PATH_LITERAL("drive/File 1.txt")),
1153 "text/plain",
1154 13,
1155 GURL("https://2_file_link_resumable_create_media"),
1156 "invalid_etag",
1157 base::Bind(&test_util::CopyResultsFromInitiateUploadCallback,
1158 &error,
1159 &upload_location));
1131 message_loop_.RunUntilIdle(); 1160 message_loop_.RunUntilIdle();
1132 1161
1133 EXPECT_EQ(HTTP_PRECONDITION, error); 1162 EXPECT_EQ(HTTP_PRECONDITION, error);
1134 EXPECT_TRUE(upload_location.is_empty()); 1163 EXPECT_TRUE(upload_location.is_empty());
1135 } 1164 }
1136 1165
1137 TEST_F(FakeDriveServiceTest, InitiateUpload_ExistingFile) { 1166 TEST_F(FakeDriveServiceTest, InitiateUpload_ExistingFile) {
1138 ASSERT_TRUE(fake_service_.LoadResourceListForWapi("gdata/root_feed.json")); 1167 ASSERT_TRUE(fake_service_.LoadResourceListForWapi("gdata/root_feed.json"));
1139 1168
1140 GDataErrorCode error = GDATA_OTHER_ERROR; 1169 GDataErrorCode error = GDATA_OTHER_ERROR;
1141 GURL upload_location; 1170 GURL upload_location;
1142 fake_service_.InitiateUpload( 1171 fake_service_.InitiateUploadExistingFile(
1143 InitiateUploadParams( 1172 FilePath(FILE_PATH_LITERAL("drive/File 1.txt")),
1144 UPLOAD_EXISTING_FILE, 1173 "text/plain",
1145 "name_ignored", 1174 13,
1146 "text/plain", 1175 GURL("https://2_file_link_resumable_create_media"),
1147 13, 1176 "\"HhMOFgxXHit7ImBr\"",
1148 GURL("https://2_file_link_resumable_create_media"),
1149 FilePath(FILE_PATH_LITERAL("drive/File 1.txt")),
1150 "\"HhMOFgxXHit7ImBr\""),
1151 base::Bind(&test_util::CopyResultsFromInitiateUploadCallback, 1177 base::Bind(&test_util::CopyResultsFromInitiateUploadCallback,
1152 &error, 1178 &error,
1153 &upload_location)); 1179 &upload_location));
1154 message_loop_.RunUntilIdle(); 1180 message_loop_.RunUntilIdle();
1155 1181
1156 EXPECT_EQ(HTTP_SUCCESS, error); 1182 EXPECT_EQ(HTTP_SUCCESS, error);
1157 EXPECT_EQ(GURL("https://2_file_link_resumable_create_media"), 1183 EXPECT_EQ(GURL("https://2_file_link_resumable_create_media"),
1158 upload_location); 1184 upload_location);
1159 } 1185 }
1160 1186
1161 TEST_F(FakeDriveServiceTest, ResumeUpload_Offline) { 1187 TEST_F(FakeDriveServiceTest, ResumeUpload_Offline) {
1162 ASSERT_TRUE(fake_service_.LoadResourceListForWapi("gdata/root_feed.json")); 1188 ASSERT_TRUE(fake_service_.LoadResourceListForWapi("gdata/root_feed.json"));
1163 1189
1164 GDataErrorCode error = GDATA_OTHER_ERROR; 1190 GDataErrorCode error = GDATA_OTHER_ERROR;
1165 GURL upload_location; 1191 GURL upload_location;
1166 fake_service_.InitiateUpload( 1192 fake_service_.InitiateUploadNewFile(
1167 InitiateUploadParams( 1193 FilePath(FILE_PATH_LITERAL("drive/Directory 1/new file.foo")),
1168 UPLOAD_NEW_FILE, 1194 "test/foo",
1169 "new file.foo", 1195 15,
1170 "test/foo", 1196 GURL("https://1_folder_resumable_create_media_link"),
1171 15, 1197 "new file.foo",
1172 GURL("https://1_folder_resumable_create_media_link"),
1173 FilePath(FILE_PATH_LITERAL("drive/Directory 1/new file.foo")),
1174 "etag_ignored"),
1175 base::Bind(&test_util::CopyResultsFromInitiateUploadCallback, 1198 base::Bind(&test_util::CopyResultsFromInitiateUploadCallback,
1176 &error, 1199 &error,
1177 &upload_location)); 1200 &upload_location));
1178 message_loop_.RunUntilIdle(); 1201 message_loop_.RunUntilIdle();
1179 1202
1180 EXPECT_EQ(HTTP_SUCCESS, error); 1203 EXPECT_EQ(HTTP_SUCCESS, error);
1181 EXPECT_FALSE(upload_location.is_empty()); 1204 EXPECT_FALSE(upload_location.is_empty());
1182 EXPECT_NE(GURL("https://1_folder_resumable_create_media_link"), 1205 EXPECT_NE(GURL("https://1_folder_resumable_create_media_link"),
1183 upload_location); 1206 upload_location);
1184 1207
(...skipping 14 matching lines...) Expand all
1199 1222
1200 EXPECT_EQ(GDATA_NO_CONNECTION, response.code); 1223 EXPECT_EQ(GDATA_NO_CONNECTION, response.code);
1201 EXPECT_FALSE(entry.get()); 1224 EXPECT_FALSE(entry.get());
1202 } 1225 }
1203 1226
1204 TEST_F(FakeDriveServiceTest, ResumeUpload_NotFound) { 1227 TEST_F(FakeDriveServiceTest, ResumeUpload_NotFound) {
1205 ASSERT_TRUE(fake_service_.LoadResourceListForWapi("gdata/root_feed.json")); 1228 ASSERT_TRUE(fake_service_.LoadResourceListForWapi("gdata/root_feed.json"));
1206 1229
1207 GDataErrorCode error = GDATA_OTHER_ERROR; 1230 GDataErrorCode error = GDATA_OTHER_ERROR;
1208 GURL upload_location; 1231 GURL upload_location;
1209 fake_service_.InitiateUpload( 1232 fake_service_.InitiateUploadNewFile(
1210 InitiateUploadParams( 1233 FilePath(FILE_PATH_LITERAL("drive/Directory 1/new file.foo")),
1211 UPLOAD_NEW_FILE, 1234 "test/foo",
1212 "new file.foo", 1235 15,
1213 "test/foo", 1236 GURL("https://1_folder_resumable_create_media_link"),
1214 15, 1237 "new file.foo",
1215 GURL("https://1_folder_resumable_create_media_link"),
1216 FilePath(FILE_PATH_LITERAL("drive/Directory 1/new file.foo")),
1217 "etag_ignored"),
1218 base::Bind(&test_util::CopyResultsFromInitiateUploadCallback, 1238 base::Bind(&test_util::CopyResultsFromInitiateUploadCallback,
1219 &error, 1239 &error,
1220 &upload_location)); 1240 &upload_location));
1221 message_loop_.RunUntilIdle(); 1241 message_loop_.RunUntilIdle();
1222 1242
1223 ASSERT_EQ(HTTP_SUCCESS, error); 1243 ASSERT_EQ(HTTP_SUCCESS, error);
1224 1244
1225 UploadRangeResponse response; 1245 UploadRangeResponse response;
1226 scoped_ptr<ResourceEntry> entry; 1246 scoped_ptr<ResourceEntry> entry;
1227 fake_service_.ResumeUpload( 1247 fake_service_.ResumeUpload(
1228 ResumeUploadParams(UPLOAD_NEW_FILE, 1248 ResumeUploadParams(UPLOAD_NEW_FILE,
1229 0, 13, 15, "test/foo", 1249 0, 13, 15, "test/foo",
1230 scoped_refptr<net::IOBuffer>(), 1250 scoped_refptr<net::IOBuffer>(),
1231 GURL("https://foo.com/"), 1251 GURL("https://foo.com/"),
1232 FilePath(FILE_PATH_LITERAL( 1252 FilePath(FILE_PATH_LITERAL(
1233 "drive/Directory 1/new file.foo"))), 1253 "drive/Directory 1/new file.foo"))),
1234 base::Bind(&test_util::CopyResultsFromUploadRangeCallback, 1254 base::Bind(&test_util::CopyResultsFromUploadRangeCallback,
1235 &response, &entry)); 1255 &response, &entry));
1236 message_loop_.RunUntilIdle(); 1256 message_loop_.RunUntilIdle();
1237 1257
1238 EXPECT_EQ(HTTP_NOT_FOUND, response.code); 1258 EXPECT_EQ(HTTP_NOT_FOUND, response.code);
1239 EXPECT_FALSE(entry.get()); 1259 EXPECT_FALSE(entry.get());
1240 } 1260 }
1241 1261
1242 TEST_F(FakeDriveServiceTest, ResumeUpload_ExistingFile) { 1262 TEST_F(FakeDriveServiceTest, ResumeUpload_ExistingFile) {
1243 ASSERT_TRUE(fake_service_.LoadResourceListForWapi("gdata/root_feed.json")); 1263 ASSERT_TRUE(fake_service_.LoadResourceListForWapi("gdata/root_feed.json"));
1244 1264
1245 GDataErrorCode error = GDATA_OTHER_ERROR; 1265 GDataErrorCode error = GDATA_OTHER_ERROR;
1246 GURL upload_location; 1266 GURL upload_location;
1247 fake_service_.InitiateUpload( 1267 fake_service_.InitiateUploadExistingFile(
1248 InitiateUploadParams( 1268 FilePath(FILE_PATH_LITERAL("drive/File 1.txt")),
1249 UPLOAD_EXISTING_FILE, 1269 "text/plain",
1250 "name_ignored", 1270 15,
1251 "text/plain", 1271 GURL("https://2_file_link_resumable_create_media"),
1252 15, 1272 "\"HhMOFgxXHit7ImBr\"",
1253 GURL("https://2_file_link_resumable_create_media"),
1254 FilePath(FILE_PATH_LITERAL("drive/File 1.txt")),
1255 "\"HhMOFgxXHit7ImBr\""),
1256 base::Bind(&test_util::CopyResultsFromInitiateUploadCallback, 1273 base::Bind(&test_util::CopyResultsFromInitiateUploadCallback,
1257 &error, 1274 &error,
1258 &upload_location)); 1275 &upload_location));
1259 message_loop_.RunUntilIdle(); 1276 message_loop_.RunUntilIdle();
1260 1277
1261 ASSERT_EQ(HTTP_SUCCESS, error); 1278 ASSERT_EQ(HTTP_SUCCESS, error);
1262 1279
1263 UploadRangeResponse response; 1280 UploadRangeResponse response;
1264 scoped_ptr<ResourceEntry> entry; 1281 scoped_ptr<ResourceEntry> entry;
1265 fake_service_.ResumeUpload( 1282 fake_service_.ResumeUpload(
(...skipping 25 matching lines...) Expand all
1291 EXPECT_TRUE(entry.get()); 1308 EXPECT_TRUE(entry.get());
1292 EXPECT_EQ(15L, entry->file_size()); 1309 EXPECT_EQ(15L, entry->file_size());
1293 EXPECT_TRUE(Exists(entry->resource_id())); 1310 EXPECT_TRUE(Exists(entry->resource_id()));
1294 } 1311 }
1295 1312
1296 TEST_F(FakeDriveServiceTest, ResumeUpload_NewFile) { 1313 TEST_F(FakeDriveServiceTest, ResumeUpload_NewFile) {
1297 ASSERT_TRUE(fake_service_.LoadResourceListForWapi("gdata/root_feed.json")); 1314 ASSERT_TRUE(fake_service_.LoadResourceListForWapi("gdata/root_feed.json"));
1298 1315
1299 GDataErrorCode error = GDATA_OTHER_ERROR; 1316 GDataErrorCode error = GDATA_OTHER_ERROR;
1300 GURL upload_location; 1317 GURL upload_location;
1301 fake_service_.InitiateUpload( 1318 fake_service_.InitiateUploadNewFile(
1302 InitiateUploadParams( 1319 FilePath(FILE_PATH_LITERAL("drive/Directory 1/new file.foo")),
1303 UPLOAD_NEW_FILE, 1320 "test/foo",
1304 "new file.foo", 1321 15,
1305 "test/foo", 1322 GURL("https://1_folder_resumable_create_media_link"),
1306 15, 1323 "new file.foo",
1307 GURL("https://1_folder_resumable_create_media_link"),
1308 FilePath(FILE_PATH_LITERAL("drive/Directory 1/new file.foo")),
1309 "etag_ignored"),
1310 base::Bind(&test_util::CopyResultsFromInitiateUploadCallback, 1324 base::Bind(&test_util::CopyResultsFromInitiateUploadCallback,
1311 &error, 1325 &error,
1312 &upload_location)); 1326 &upload_location));
1313 message_loop_.RunUntilIdle(); 1327 message_loop_.RunUntilIdle();
1314 1328
1315 EXPECT_EQ(HTTP_SUCCESS, error); 1329 EXPECT_EQ(HTTP_SUCCESS, error);
1316 EXPECT_FALSE(upload_location.is_empty()); 1330 EXPECT_FALSE(upload_location.is_empty());
1317 EXPECT_NE(GURL("https://1_folder_resumable_create_media_link"), 1331 EXPECT_NE(GURL("https://1_folder_resumable_create_media_link"),
1318 upload_location); 1332 upload_location);
1319 1333
(...skipping 26 matching lines...) Expand all
1346 1360
1347 EXPECT_EQ(HTTP_CREATED, response.code); 1361 EXPECT_EQ(HTTP_CREATED, response.code);
1348 EXPECT_TRUE(entry.get()); 1362 EXPECT_TRUE(entry.get());
1349 EXPECT_EQ(15L, entry->file_size()); 1363 EXPECT_EQ(15L, entry->file_size());
1350 EXPECT_TRUE(Exists(entry->resource_id())); 1364 EXPECT_TRUE(Exists(entry->resource_id()));
1351 } 1365 }
1352 1366
1353 } // namespace 1367 } // namespace
1354 1368
1355 } // namespace google_apis 1369 } // namespace google_apis
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698