2 #include <gtest/gtest.h>
3 #include "codepage_detect.h"
8 // The fixture for testing paths functions.
9 class CodepageDetectTest : public testing::Test
12 // You can remove any or all of the following functions if its body
17 // You can do set-up work for each test here.
21 virtual ~CodepageDetectTest()
23 // You can do clean-up work that doesn't throw exceptions here.
27 // If the constructor and destructor are not enough for setting up
28 // and cleaning up each test, you can define the following methods:
32 // Code here will be called immediately after the constructor (right
36 virtual void TearDown()
38 // Code here will be called immediately after each test (right
39 // before the destructor).
42 // Objects declared here can be used by all tests in the test case for Foo.
45 TEST_F(CodepageDetectTest, GuessCodepageEncoding0)
48 enc = codepage_detect::Guess(_T("../../Data/Unicode/UCS-2LE/DiffItem.h"), 0);
49 EXPECT_EQ(1200, enc.m_codepage);
50 EXPECT_EQ(true, enc.m_bom);
51 EXPECT_EQ(ucr::UCS2LE, enc.m_unicoding);
52 enc = codepage_detect::Guess(_T("../../Data/Unicode/UCS-2BE/DiffItem.h"), 0);
53 EXPECT_EQ(1201, enc.m_codepage);
54 EXPECT_EQ(true, enc.m_bom);
55 EXPECT_EQ(ucr::UCS2BE, enc.m_unicoding);
56 enc = codepage_detect::Guess(_T("../../Data/Unicode/UTF-8/DiffItem.h"), 0);
57 EXPECT_EQ(65001, enc.m_codepage);
58 EXPECT_EQ(true, enc.m_bom);
59 EXPECT_EQ(ucr::UTF8, enc.m_unicoding);
60 enc = codepage_detect::Guess(_T("../../Data/Unicode/UTF-8-NOBOM/DiffItem.h"), 0);
61 EXPECT_EQ(ucr::getDefaultCodepage(), enc.m_codepage);
62 EXPECT_EQ(false, enc.m_bom);
63 EXPECT_EQ(ucr::NONE, enc.m_unicoding);
65 enc = codepage_detect::Guess(_T("abcdefg12345"), 0);
66 EXPECT_EQ(ucr::getDefaultCodepage(), enc.m_codepage);
67 EXPECT_EQ(false, enc.m_bom);
68 EXPECT_EQ(ucr::NONE, enc.m_unicoding);
71 TEST_F(CodepageDetectTest, GuessCodepageEncoding1)
74 enc = codepage_detect::Guess(_T("../../Data/Unicode/UTF-8-NOBOM/DiffItem.h"), 1);
75 EXPECT_EQ(65001, enc.m_codepage);
76 EXPECT_EQ(false, enc.m_bom);
77 EXPECT_EQ(ucr::UTF8, enc.m_unicoding);
79 enc = codepage_detect::Guess(_T("../../../Docs/Manual/EN/About_Doc.xml"), 1);
80 EXPECT_EQ(65001, enc.m_codepage);
81 EXPECT_EQ(false, enc.m_bom);
82 EXPECT_EQ(ucr::UTF8, enc.m_unicoding);
84 enc = codepage_detect::Guess(_T("../../../Docs/Developers/readme-developers.html"), 1);
85 EXPECT_EQ(28591, enc.m_codepage);
86 EXPECT_EQ(false, enc.m_bom);
87 EXPECT_EQ(ucr::NONE, enc.m_unicoding);
89 enc = codepage_detect::Guess(_T("../../../ShellExtension/Languages/ShellExtensionRussian.rc"), 1);
90 EXPECT_EQ(65001, enc.m_codepage);
91 EXPECT_EQ(true, enc.m_bom);
92 EXPECT_EQ(ucr::UTF8, enc.m_unicoding);