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