| 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 #import <Cocoa/Cocoa.h> | 5 #import <Cocoa/Cocoa.h> |
| 6 #include <stddef.h> | 6 #include <stddef.h> |
| 7 #include <stdint.h> | 7 #include <stdint.h> |
| 8 | 8 |
| 9 #include "base/mac/mac_util.h" | 9 #include "base/mac/mac_util.h" |
| 10 | 10 |
| (...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 101 EXPECT_STREQ(valid_inputs[i].expected_out, | 101 EXPECT_STREQ(valid_inputs[i].expected_out, |
| 102 out.value().c_str()) << "loop: " << i; | 102 out.value().c_str()) << "loop: " << i; |
| 103 } | 103 } |
| 104 } | 104 } |
| 105 | 105 |
| 106 // http://crbug.com/425745 | 106 // http://crbug.com/425745 |
| 107 TEST_F(MacUtilTest, DISABLED_TestExcludeFileFromBackups) { | 107 TEST_F(MacUtilTest, DISABLED_TestExcludeFileFromBackups) { |
| 108 // The file must already exist in order to set its exclusion property. | 108 // The file must already exist in order to set its exclusion property. |
| 109 ScopedTempDir temp_dir_; | 109 ScopedTempDir temp_dir_; |
| 110 ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); | 110 ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); |
| 111 FilePath dummy_file_path = temp_dir_.path().Append("DummyFile"); | 111 FilePath dummy_file_path = temp_dir_.GetPath().Append("DummyFile"); |
| 112 const char dummy_data[] = "All your base are belong to us!"; | 112 const char dummy_data[] = "All your base are belong to us!"; |
| 113 // Dump something real into the file. | 113 // Dump something real into the file. |
| 114 ASSERT_EQ(static_cast<int>(arraysize(dummy_data)), | 114 ASSERT_EQ(static_cast<int>(arraysize(dummy_data)), |
| 115 WriteFile(dummy_file_path, dummy_data, arraysize(dummy_data))); | 115 WriteFile(dummy_file_path, dummy_data, arraysize(dummy_data))); |
| 116 NSString* fileURLString = | 116 NSString* fileURLString = |
| 117 [NSString stringWithUTF8String:dummy_file_path.value().c_str()]; | 117 [NSString stringWithUTF8String:dummy_file_path.value().c_str()]; |
| 118 NSURL* fileURL = [NSURL URLWithString:fileURLString]; | 118 NSURL* fileURL = [NSURL URLWithString:fileURLString]; |
| 119 // Initial state should be non-excluded. | 119 // Initial state should be non-excluded. |
| 120 EXPECT_FALSE(CSBackupIsItemExcluded(base::mac::NSToCFCast(fileURL), NULL)); | 120 EXPECT_FALSE(CSBackupIsItemExcluded(base::mac::NSToCFCast(fileURL), NULL)); |
| 121 // Exclude the file. | 121 // Exclude the file. |
| (...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 228 | 228 |
| 229 EXPECT_TRUE(ParseModelIdentifier("MacBookPro6,2", &model, &major, &minor)); | 229 EXPECT_TRUE(ParseModelIdentifier("MacBookPro6,2", &model, &major, &minor)); |
| 230 EXPECT_EQ(model, "MacBookPro"); | 230 EXPECT_EQ(model, "MacBookPro"); |
| 231 EXPECT_EQ(6, major); | 231 EXPECT_EQ(6, major); |
| 232 EXPECT_EQ(2, minor); | 232 EXPECT_EQ(2, minor); |
| 233 } | 233 } |
| 234 | 234 |
| 235 TEST_F(MacUtilTest, TestRemoveQuarantineAttribute) { | 235 TEST_F(MacUtilTest, TestRemoveQuarantineAttribute) { |
| 236 ScopedTempDir temp_dir_; | 236 ScopedTempDir temp_dir_; |
| 237 ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); | 237 ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); |
| 238 FilePath dummy_folder_path = temp_dir_.path().Append("DummyFolder"); | 238 FilePath dummy_folder_path = temp_dir_.GetPath().Append("DummyFolder"); |
| 239 ASSERT_TRUE(base::CreateDirectory(dummy_folder_path)); | 239 ASSERT_TRUE(base::CreateDirectory(dummy_folder_path)); |
| 240 const char* quarantine_str = "0000;4b392bb2;Chromium;|org.chromium.Chromium"; | 240 const char* quarantine_str = "0000;4b392bb2;Chromium;|org.chromium.Chromium"; |
| 241 const char* file_path_str = dummy_folder_path.value().c_str(); | 241 const char* file_path_str = dummy_folder_path.value().c_str(); |
| 242 EXPECT_EQ(0, setxattr(file_path_str, "com.apple.quarantine", | 242 EXPECT_EQ(0, setxattr(file_path_str, "com.apple.quarantine", |
| 243 quarantine_str, strlen(quarantine_str), 0, 0)); | 243 quarantine_str, strlen(quarantine_str), 0, 0)); |
| 244 EXPECT_EQ(static_cast<long>(strlen(quarantine_str)), | 244 EXPECT_EQ(static_cast<long>(strlen(quarantine_str)), |
| 245 getxattr(file_path_str, "com.apple.quarantine", | 245 getxattr(file_path_str, "com.apple.quarantine", |
| 246 NULL, 0, 0, 0)); | 246 NULL, 0, 0, 0)); |
| 247 EXPECT_TRUE(RemoveQuarantineAttribute(dummy_folder_path)); | 247 EXPECT_TRUE(RemoveQuarantineAttribute(dummy_folder_path)); |
| 248 EXPECT_EQ(-1, getxattr(file_path_str, "com.apple.quarantine", NULL, 0, 0, 0)); | 248 EXPECT_EQ(-1, getxattr(file_path_str, "com.apple.quarantine", NULL, 0, 0, 0)); |
| 249 EXPECT_EQ(ENOATTR, errno); | 249 EXPECT_EQ(ENOATTR, errno); |
| 250 } | 250 } |
| 251 | 251 |
| 252 TEST_F(MacUtilTest, TestRemoveQuarantineAttributeTwice) { | 252 TEST_F(MacUtilTest, TestRemoveQuarantineAttributeTwice) { |
| 253 ScopedTempDir temp_dir_; | 253 ScopedTempDir temp_dir_; |
| 254 ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); | 254 ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); |
| 255 FilePath dummy_folder_path = temp_dir_.path().Append("DummyFolder"); | 255 FilePath dummy_folder_path = temp_dir_.GetPath().Append("DummyFolder"); |
| 256 const char* file_path_str = dummy_folder_path.value().c_str(); | 256 const char* file_path_str = dummy_folder_path.value().c_str(); |
| 257 ASSERT_TRUE(base::CreateDirectory(dummy_folder_path)); | 257 ASSERT_TRUE(base::CreateDirectory(dummy_folder_path)); |
| 258 EXPECT_EQ(-1, getxattr(file_path_str, "com.apple.quarantine", NULL, 0, 0, 0)); | 258 EXPECT_EQ(-1, getxattr(file_path_str, "com.apple.quarantine", NULL, 0, 0, 0)); |
| 259 // No quarantine attribute to begin with, but RemoveQuarantineAttribute still | 259 // No quarantine attribute to begin with, but RemoveQuarantineAttribute still |
| 260 // succeeds because in the end the folder still doesn't have the quarantine | 260 // succeeds because in the end the folder still doesn't have the quarantine |
| 261 // attribute set. | 261 // attribute set. |
| 262 EXPECT_TRUE(RemoveQuarantineAttribute(dummy_folder_path)); | 262 EXPECT_TRUE(RemoveQuarantineAttribute(dummy_folder_path)); |
| 263 EXPECT_TRUE(RemoveQuarantineAttribute(dummy_folder_path)); | 263 EXPECT_TRUE(RemoveQuarantineAttribute(dummy_folder_path)); |
| 264 EXPECT_EQ(ENOATTR, errno); | 264 EXPECT_EQ(ENOATTR, errno); |
| 265 } | 265 } |
| 266 | 266 |
| 267 TEST_F(MacUtilTest, TestRemoveQuarantineAttributeNonExistentPath) { | 267 TEST_F(MacUtilTest, TestRemoveQuarantineAttributeNonExistentPath) { |
| 268 ScopedTempDir temp_dir_; | 268 ScopedTempDir temp_dir_; |
| 269 ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); | 269 ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); |
| 270 FilePath non_existent_path = temp_dir_.path().Append("DummyPath"); | 270 FilePath non_existent_path = temp_dir_.GetPath().Append("DummyPath"); |
| 271 ASSERT_FALSE(PathExists(non_existent_path)); | 271 ASSERT_FALSE(PathExists(non_existent_path)); |
| 272 EXPECT_FALSE(RemoveQuarantineAttribute(non_existent_path)); | 272 EXPECT_FALSE(RemoveQuarantineAttribute(non_existent_path)); |
| 273 } | 273 } |
| 274 | 274 |
| 275 } // namespace | 275 } // namespace |
| 276 | 276 |
| 277 } // namespace mac | 277 } // namespace mac |
| 278 } // namespace base | 278 } // namespace base |
| OLD | NEW |