Fix Content-Transfer-Encoding value
[TortoiseGit.git] / test / UnitTests / libgit2Test.cpp
blob5989cf748d9f37ceae1ac03344aececeed07a2ec
1 // TortoiseGit - a Windows shell extension for easy version control
3 // Copyright (C) 2015-2017 - TortoiseGit
5 // This program is free software; you can redistribute it and/or
6 // modify it under the terms of the GNU General Public License
7 // as published by the Free Software Foundation; either version 2
8 // of the License, or (at your option) any later version.
10 // This program is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 // GNU General Public License for more details.
15 // You should have received a copy of the GNU General Public License
16 // along with this program; if not, write to the Free Software Foundation,
17 // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
20 #include "stdafx.h"
21 #include "StringUtils.h"
23 TEST(libgit2, Config)
25 CAutoTempDir tempdir;
26 CString testFile = tempdir.GetTempDir() + L"\\config";
27 EXPECT_TRUE(CStringUtils::WriteStringToTextFile(testFile, L"[core]\nemail=dummy@example.com\ntrue=true\nfalse=false\n"));
28 CAutoConfig config(true);
29 EXPECT_EQ(0, git_config_add_file_ondisk(config, CUnicodeUtils::GetUTF8(testFile), GIT_CONFIG_LEVEL_LOCAL, nullptr, 1));
30 bool ret = false;
31 EXPECT_EQ(0, config.GetBool(L"core.true", ret));
32 EXPECT_EQ(true, ret);
33 EXPECT_EQ(0, config.GetBool(L"core.false", ret));
34 EXPECT_EQ(false, ret);
35 EXPECT_EQ(-3, config.GetBool(L"core.not-exist", ret));
36 CString value;
37 EXPECT_EQ(0, config.GetString(L"core.email", value));
38 EXPECT_STREQ(L"dummy@example.com", value);
41 TEST(libgit2, TGitPatches)
43 CAutoTempDir tempdir;
45 git_repository_init_options options = GIT_REPOSITORY_INIT_OPTIONS_INIT;
46 options.flags = GIT_REPOSITORY_INIT_MKPATH | GIT_REPOSITORY_INIT_EXTERNAL_TEMPLATE;
47 CAutoRepository repo;
48 ASSERT_EQ(0, git_repository_init_ext(repo.GetPointer(), CUnicodeUtils::GetUTF8(tempdir.GetTempDir()), &options));
50 CAutoConfig config;
51 ASSERT_EQ(0, git_repository_config(config.GetPointer(), repo));
52 EXPECT_EQ(0, git_config_set_string(config, "core.autocrlf", "true"));
53 EXPECT_EQ(0, git_config_set_string(config, "core.safecrlf", "true"));
55 CAutoRepository repo2(tempdir.GetTempDir());
56 ASSERT_TRUE(repo2.IsValid());
57 CAutoIndex index;
58 ASSERT_EQ(0, git_repository_index(index.GetPointer(), repo2));
60 CString testFile = tempdir.GetTempDir() + L"\\safecrlf-failure.txt";
61 EXPECT_TRUE(CStringUtils::WriteStringToTextFile(testFile, L"crlf\r\ncrlf\r\n"));
62 EXPECT_EQ(0, git_index_add_bypath(index, "safecrlf-failure.txt"));
64 EXPECT_TRUE(CStringUtils::WriteStringToTextFile(testFile, L"lf\nlf\n"));
65 EXPECT_EQ(-1, git_index_add_bypath(index, "safecrlf-failure.txt"));
67 EXPECT_TRUE(CStringUtils::WriteStringToTextFile(testFile, L"crlf\r\ncr\rcrlf\r\n"));
68 EXPECT_EQ(0, git_index_add_bypath(index, "safecrlf-failure.txt"));
70 EXPECT_EQ(0, git_config_set_string(config, "core.autocrlf", "input"));
71 CAutoRepository repo3(tempdir.GetTempDir());
72 ASSERT_TRUE(repo3.IsValid());
73 ASSERT_EQ(0, git_repository_index(index.GetPointer(), repo3));
75 EXPECT_TRUE(CStringUtils::WriteStringToTextFile(testFile, L"crlf\r\ncrlf\r\n"));
76 EXPECT_EQ(-1, git_index_add_bypath(index, "safecrlf-failure.txt"));