Chromium Code Reviews| 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 #include <stddef.h> | 5 #include <stddef.h> |
| 6 #include <stdint.h> | 6 #include <stdint.h> |
| 7 | 7 |
| 8 #include <algorithm> | 8 #include <algorithm> |
| 9 #include <fstream> | 9 #include <fstream> |
| 10 #include <set> | 10 #include <set> |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 47 #include "base/android/content_uri_utils.h" | 47 #include "base/android/content_uri_utils.h" |
| 48 #endif | 48 #endif |
| 49 | 49 |
| 50 // This macro helps avoid wrapped lines in the test structs. | 50 // This macro helps avoid wrapped lines in the test structs. |
| 51 #define FPL(x) FILE_PATH_LITERAL(x) | 51 #define FPL(x) FILE_PATH_LITERAL(x) |
| 52 | 52 |
| 53 namespace base { | 53 namespace base { |
| 54 | 54 |
| 55 namespace { | 55 namespace { |
| 56 | 56 |
| 57 struct UnaryBooleanTestData { | |
| 58 const FilePath::CharType* input; | |
| 59 bool expected; | |
| 60 }; | |
| 61 | |
| 57 // To test that NormalizeFilePath() deals with NTFS reparse points correctly, | 62 // To test that NormalizeFilePath() deals with NTFS reparse points correctly, |
| 58 // we need functions to create and delete reparse points. | 63 // we need functions to create and delete reparse points. |
| 59 #if defined(OS_WIN) | 64 #if defined(OS_WIN) |
| 60 typedef struct _REPARSE_DATA_BUFFER { | 65 typedef struct _REPARSE_DATA_BUFFER { |
| 61 ULONG ReparseTag; | 66 ULONG ReparseTag; |
| 62 USHORT ReparseDataLength; | 67 USHORT ReparseDataLength; |
| 63 USHORT Reserved; | 68 USHORT Reserved; |
| 64 union { | 69 union { |
| 65 struct { | 70 struct { |
| 66 USHORT SubstituteNameOffset; | 71 USHORT SubstituteNameOffset; |
| (...skipping 1590 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1657 } | 1662 } |
| 1658 | 1663 |
| 1659 // Restore the original $TMP. | 1664 // Restore the original $TMP. |
| 1660 if (original_tmp) { | 1665 if (original_tmp) { |
| 1661 ::_tputenv_s(kTmpKey, original_tmp); | 1666 ::_tputenv_s(kTmpKey, original_tmp); |
| 1662 free(original_tmp); | 1667 free(original_tmp); |
| 1663 } else { | 1668 } else { |
| 1664 ::_tputenv_s(kTmpKey, _T("")); | 1669 ::_tputenv_s(kTmpKey, _T("")); |
| 1665 } | 1670 } |
| 1666 } | 1671 } |
| 1672 | |
| 1673 TEST_F(FileUtilTest, IsOnNetworkDrive) { | |
| 1674 const struct UnaryBooleanTestData cases[] = { | |
| 1675 { FPL(""), false }, | |
| 1676 { FPL("c:\\"), false }, | |
| 1677 { FPL("c:"), false }, | |
| 1678 { FPL("c:\\windows\\notepad.exe"), false }, | |
| 1679 /* | |
|
cpu_(ooo_6.6-7.5)
2016/04/15 20:55:33
hmmm ... rather use an environment variable, so ev
| |
| 1680 // Uncomment and edit, for manual testing only. | |
| 1681 { FPL("\\\\server\\share\\file.txt"), true }, | |
| 1682 { FPL("\\\\server\\share"), true }, | |
| 1683 { FPL("\\\\server\\share\\"), true }, | |
| 1684 { FPL("\\\\server\\"), false }, | |
| 1685 { FPL("\\\\server"), false }, | |
| 1686 */ | |
| 1687 }; | |
| 1688 | |
| 1689 for (size_t i = 0; i < arraysize(cases); ++i) { | |
| 1690 FilePath input(cases[i].input); | |
| 1691 bool observed = IsOnNetworkDrive(input); | |
| 1692 EXPECT_EQ(cases[i].expected, observed) << | |
| 1693 "i: " << i << ", input: " << input.value(); | |
| 1694 } | |
| 1695 } | |
| 1667 #endif // OS_WIN | 1696 #endif // OS_WIN |
| 1668 | 1697 |
| 1669 TEST_F(FileUtilTest, CreateTemporaryFileTest) { | 1698 TEST_F(FileUtilTest, CreateTemporaryFileTest) { |
| 1670 FilePath temp_files[3]; | 1699 FilePath temp_files[3]; |
| 1671 for (int i = 0; i < 3; i++) { | 1700 for (int i = 0; i < 3; i++) { |
| 1672 ASSERT_TRUE(CreateTemporaryFile(&(temp_files[i]))); | 1701 ASSERT_TRUE(CreateTemporaryFile(&(temp_files[i]))); |
| 1673 EXPECT_TRUE(PathExists(temp_files[i])); | 1702 EXPECT_TRUE(PathExists(temp_files[i])); |
| 1674 EXPECT_FALSE(DirectoryExists(temp_files[i])); | 1703 EXPECT_FALSE(DirectoryExists(temp_files[i])); |
| 1675 } | 1704 } |
| 1676 for (int i = 0; i < 3; i++) | 1705 for (int i = 0; i < 3; i++) |
| (...skipping 843 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2520 // Trying to close it should crash. This is important for security. | 2549 // Trying to close it should crash. This is important for security. |
| 2521 EXPECT_DEATH(CloseWithScopedFD(fds[1]), ""); | 2550 EXPECT_DEATH(CloseWithScopedFD(fds[1]), ""); |
| 2522 #endif | 2551 #endif |
| 2523 } | 2552 } |
| 2524 | 2553 |
| 2525 #endif // defined(OS_POSIX) | 2554 #endif // defined(OS_POSIX) |
| 2526 | 2555 |
| 2527 } // namespace | 2556 } // namespace |
| 2528 | 2557 |
| 2529 } // namespace base | 2558 } // namespace base |
| OLD | NEW |