OSDN Git Service

Merge
[winmerge-jp/winmerge-jp.git] / Testing / GoogleTest / Encoding / codepage_detect_test.cpp
1 #include <gtest/gtest.h>
2 #include "codepage_detect.h"
3
4 namespace
5 {
6         // The fixture for testing paths functions.
7         class CodepageDetectTest : public testing::Test
8         {
9         protected:
10                 // You can remove any or all of the following functions if its body
11                 // is   empty.
12
13                 CodepageDetectTest()
14                 {
15                         // You can do set-up work for each test here.
16                 }
17
18                 virtual ~CodepageDetectTest()
19                 {
20                         // You can do clean-up work     that doesn't throw exceptions here.
21                 }
22
23                 // If   the     constructor     and     destructor are not enough for setting up
24                 // and cleaning up each test, you can define the following methods:
25
26                 virtual void SetUp()
27                 {
28                         // Code here will be called     immediately     after the constructor (right
29                         // before each test).
30                 }
31
32                 virtual void TearDown()
33                 {
34                         // Code here will be called     immediately     after each test (right
35                         // before the destructor).
36                 }
37
38                 // Objects declared here can be used by all tests in the test case for Foo.
39         };
40
41         TEST_F(CodepageDetectTest, GuessCodepageEncoding0)
42         {
43                 FileTextEncoding enc;
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);
60
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);
65         }
66
67         TEST_F(CodepageDetectTest, GuessCodepageEncoding1)
68         {
69                 FileTextEncoding enc;
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);
74
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);
79
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);
84
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);
89         }
90
91
92 }  // namespace