1 // Aseprite
2 // Copyright (C) 2001-2015 David Capello
3 //
4 // This program is distributed under the terms of
5 // the End-User License Agreement for Aseprite.
6
7 #include "tests/test.h"
8
9 #include "app/ini_file.h"
10 #include "base/fs.h"
11
12 using namespace app;
13
TEST(IniFile,Basic)14 TEST(IniFile, Basic)
15 {
16 if (base::is_file("_test.ini"))
17 base::delete_file("_test.ini");
18
19 set_config_file("_test.ini");
20
21 EXPECT_FALSE(get_config_bool("A", "a", false));
22 EXPECT_TRUE(get_config_bool("A", "b", true));
23 EXPECT_FALSE(get_config_bool("B", "a", 0));
24 EXPECT_TRUE(get_config_bool("B", "b", 1));
25
26 set_config_bool("A", "a", true);
27 set_config_bool("A", "b", false);
28 set_config_int("B", "a", 2);
29 set_config_int("B", "b", 3);
30
31 EXPECT_TRUE(get_config_bool("A", "a", false));
32 EXPECT_FALSE(get_config_bool("A", "b", true));
33 EXPECT_EQ(2, get_config_int("B", "a", 0));
34 EXPECT_EQ(3, get_config_int("B", "b", 1));
35 }
36
TEST(IniFile,PushPop)37 TEST(IniFile, PushPop)
38 {
39 if (base::is_file("_a.ini")) base::delete_file("_a.ini");
40 if (base::is_file("_b.ini")) base::delete_file("_b.ini");
41
42 set_config_file("_a.ini");
43 set_config_int("A", "a", 32);
44
45 push_config_state();
46 set_config_file("_b.ini");
47 set_config_int("A", "a", 64);
48 EXPECT_EQ(64, get_config_int("A", "a", 0));
49 pop_config_state();
50
51 EXPECT_EQ(32, get_config_int("A", "a", 0));
52 }
53