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