1 #include <gtest/gtest.h>
2 #include "codepage_detect.h"
6 // The fixture for testing paths functions.
7 class CodepageDetectTest : public testing::Test
10 // You can remove any or all of the following functions if its body
15 // You can do set-up work for each test here.
18 virtual ~CodepageDetectTest()
20 // You can do clean-up work that doesn't throw exceptions here.
23 // If the constructor and destructor are not enough for setting up
24 // and cleaning up each test, you can define the following methods:
28 // Code here will be called immediately after the constructor (right
32 virtual void TearDown()
34 // Code here will be called immediately after each test (right
35 // before the destructor).
38 // Objects declared here can be used by all tests in the test case for Foo.
41 TEST_F(CodepageDetectTest, GuessCodepageEncoding0)
44 enc = GuessCodepageEncoding(_T("../../Data/Unicode/UCS-2LE/DiffItem.h"), 0);
45 EXPECT_EQ(1200, enc.m_codepage);
46 EXPECT_EQ(true, enc.m_bom);
47 EXPECT_EQ(ucr::UCS2LE, enc.m_unicoding);
48 enc = GuessCodepageEncoding(_T("../../Data/Unicode/UCS-2BE/DiffItem.h"), 0);
49 EXPECT_EQ(1201, enc.m_codepage);
50 EXPECT_EQ(true, enc.m_bom);
51 EXPECT_EQ(ucr::UCS2BE, enc.m_unicoding);
52 enc = GuessCodepageEncoding(_T("../../Data/Unicode/UTF-8/DiffItem.h"), 0);
53 EXPECT_EQ(65001, enc.m_codepage);
54 EXPECT_EQ(true, enc.m_bom);
55 EXPECT_EQ(ucr::UTF8, enc.m_unicoding);
56 enc = GuessCodepageEncoding(_T("../../Data/Unicode/UTF-8-NOBOM/DiffItem.h"), 0);
57 EXPECT_EQ(ucr::getDefaultCodepage(), enc.m_codepage);
58 EXPECT_EQ(false, enc.m_bom);
59 EXPECT_EQ(ucr::NONE, enc.m_unicoding);
61 enc = GuessCodepageEncoding(_T("abcdefg12345"), 0);
62 EXPECT_EQ(ucr::getDefaultCodepage(), enc.m_codepage);
63 EXPECT_EQ(false, enc.m_bom);
64 EXPECT_EQ(ucr::NONE, enc.m_unicoding);
67 TEST_F(CodepageDetectTest, GuessCodepageEncoding1)
70 enc = GuessCodepageEncoding(_T("../../Data/Unicode/UTF-8-NOBOM/DiffItem.h"), 1);
71 EXPECT_EQ(65001, enc.m_codepage);
72 EXPECT_EQ(false, enc.m_bom);
73 EXPECT_EQ(ucr::UTF8, enc.m_unicoding);
75 enc = GuessCodepageEncoding(_T("../../../Docs/Users/Manual/About_Doc.xml"), 1);
76 EXPECT_EQ(65001, enc.m_codepage);
77 EXPECT_EQ(false, enc.m_bom);
78 EXPECT_EQ(ucr::UTF8, enc.m_unicoding);
80 enc = GuessCodepageEncoding(_T("../../../Docs/Developers/readme-developers.html"), 1);
81 EXPECT_EQ(28591, enc.m_codepage);
82 EXPECT_EQ(false, enc.m_bom);
83 EXPECT_EQ(ucr::NONE, enc.m_unicoding);
85 enc = GuessCodepageEncoding(_T("../../../ShellExtension/Languages/ShellExtensionRussian.rc"), 1);
86 EXPECT_EQ(1251, enc.m_codepage);
87 EXPECT_EQ(false, enc.m_bom);
88 EXPECT_EQ(ucr::NONE, enc.m_unicoding);