X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/7be8c02360bdb9bd7f59b087da874f88af2a7206..9beb11aae47bfe620e45cb816b1c6f93e028d402:/test/libapt/configuration_test.cc

diff --git a/test/libapt/configuration_test.cc b/test/libapt/configuration_test.cc
index 5b23d17fb..647d8a4af 100644
--- a/test/libapt/configuration_test.cc
+++ b/test/libapt/configuration_test.cc
@@ -1,78 +1,146 @@
+#include <config.h>
+
 #include <apt-pkg/configuration.h>
 
 #include <string>
 #include <vector>
 
-#include "assert.h"
+#include <gtest/gtest.h>
+
+//FIXME: Test for configuration file parsing;
+// currently only integration/ tests test them implicitly
 
-int main(int argc,const char *argv[]) {
+TEST(ConfigurationTest,Lists)
+{
 	Configuration Cnf;
-	std::vector<std::string> fds;
 
 	Cnf.Set("APT::Keep-Fds::",28);
 	Cnf.Set("APT::Keep-Fds::",17);
 	Cnf.Set("APT::Keep-Fds::2",47);
 	Cnf.Set("APT::Keep-Fds::","broken");
-	fds = Cnf.FindVector("APT::Keep-Fds");
-	equals(fds[0], "28");
-	equals(fds[1], "17");
-	equals(fds[2], "47");
-	equals(fds[3], "broken");
-	equals(fds.size(), 4);
-	equals(Cnf.Exists("APT::Keep-Fds::2"), true);
-	equals(Cnf.Find("APT::Keep-Fds::2"), "47");
-	equals(Cnf.FindI("APT::Keep-Fds::2"), 47);
-	equals(Cnf.Exists("APT::Keep-Fds::3"), false);
-	equals(Cnf.Find("APT::Keep-Fds::3"), "");
-	equals(Cnf.FindI("APT::Keep-Fds::3", 56), 56);
-	equals(Cnf.Find("APT::Keep-Fds::3", "not-set"), "not-set");
+	std::vector<std::string> fds = Cnf.FindVector("APT::Keep-Fds");
+	ASSERT_EQ(4, fds.size());
+	EXPECT_EQ("28", fds[0]);
+	EXPECT_EQ("17", fds[1]);
+	EXPECT_EQ("47", fds[2]);
+	EXPECT_EQ("broken", fds[3]);
+
+	EXPECT_TRUE(Cnf.Exists("APT::Keep-Fds::2"));
+	EXPECT_EQ("47", Cnf.Find("APT::Keep-Fds::2"));
+	EXPECT_EQ(47, Cnf.FindI("APT::Keep-Fds::2"));
+	EXPECT_FALSE(Cnf.Exists("APT::Keep-Fds::3"));
+	EXPECT_EQ("", Cnf.Find("APT::Keep-Fds::3"));
+	EXPECT_EQ(56, Cnf.FindI("APT::Keep-Fds::3", 56));
+	EXPECT_EQ("not-set", Cnf.Find("APT::Keep-Fds::3", "not-set"));
 
 	Cnf.Clear("APT::Keep-Fds::2");
+	EXPECT_TRUE(Cnf.Exists("APT::Keep-Fds::2"));
 	fds = Cnf.FindVector("APT::Keep-Fds");
-	equals(fds[0], "28");
-	equals(fds[1], "17");
-	equals(fds[2], "");
-	equals(fds[3], "broken");
-	equals(fds.size(), 4);
-	equals(Cnf.Exists("APT::Keep-Fds::2"), true);
+	ASSERT_EQ(4, fds.size());
+	EXPECT_EQ("28", fds[0]);
+	EXPECT_EQ("17", fds[1]);
+	EXPECT_EQ("", fds[2]);
+	EXPECT_EQ("broken", fds[3]);
 
 	Cnf.Clear("APT::Keep-Fds",28);
 	fds = Cnf.FindVector("APT::Keep-Fds");
-	equals(fds[0], "17");
-	equals(fds[1], "");
-	equals(fds[2], "broken");
-	equals(fds.size(), 3);
+	ASSERT_EQ(3, fds.size());
+	EXPECT_EQ("17", fds[0]);
+	EXPECT_EQ("", fds[1]);
+	EXPECT_EQ("broken", fds[2]);
 
 	Cnf.Clear("APT::Keep-Fds","");
-	equals(Cnf.Exists("APT::Keep-Fds::2"), false);
+	EXPECT_FALSE(Cnf.Exists("APT::Keep-Fds::2"));
 
 	Cnf.Clear("APT::Keep-Fds",17);
 	Cnf.Clear("APT::Keep-Fds","broken");
 	fds = Cnf.FindVector("APT::Keep-Fds");
-	equals(fds.empty(), true);
+	EXPECT_TRUE(fds.empty());
 
 	Cnf.Set("APT::Keep-Fds::",21);
 	Cnf.Set("APT::Keep-Fds::",42);
 	fds = Cnf.FindVector("APT::Keep-Fds");
-	equals(fds[0], "21");
-	equals(fds[1], "42");
-	equals(fds.size(), 2);
+	ASSERT_EQ(2, fds.size());
+	EXPECT_EQ("21", fds[0]);
+	EXPECT_EQ("42", fds[1]);
 
 	Cnf.Clear("APT::Keep-Fds");
 	fds = Cnf.FindVector("APT::Keep-Fds");
-	equals(fds.empty(), true);
+	EXPECT_TRUE(fds.empty());
+}
+TEST(ConfigurationTest,Integers)
+{
+	Configuration Cnf;
 
 	Cnf.CndSet("APT::Version", 42);
 	Cnf.CndSet("APT::Version", "66");
-	equals(Cnf.Find("APT::Version"), "42");
-	equals(Cnf.FindI("APT::Version"), 42);
-	equals(Cnf.Find("APT::Version", "33"), "42");
-	equals(Cnf.FindI("APT::Version", 33), 42);
-	equals(Cnf.Find("APT2::Version", "33"), "33");
-	equals(Cnf.FindI("APT2::Version", 33), 33);
+	EXPECT_EQ("42", Cnf.Find("APT::Version"));
+	EXPECT_EQ(42, Cnf.FindI("APT::Version"));
+	EXPECT_EQ("42", Cnf.Find("APT::Version", "33"));
+	EXPECT_EQ(42, Cnf.FindI("APT::Version", 33));
+	EXPECT_EQ("33", Cnf.Find("APT2::Version", "33"));
+	EXPECT_EQ(33, Cnf.FindI("APT2::Version", 33));
+}
+TEST(ConfigurationTest,DirsAndFiles)
+{
+	Configuration Cnf;
+
+	EXPECT_EQ("", Cnf.FindFile("Dir::State"));
+	EXPECT_EQ("", Cnf.FindFile("Dir::Aptitude::State"));
+	Cnf.Set("Dir", "/srv/sid");
+	EXPECT_EQ("", Cnf.FindFile("Dir::State"));
+	Cnf.Set("Dir::State", "var/lib/apt");
+	Cnf.Set("Dir::Aptitude::State", "var/lib/aptitude");
+	EXPECT_EQ("/srv/sid/var/lib/apt", Cnf.FindFile("Dir::State"));
+	EXPECT_EQ("/srv/sid/var/lib/aptitude", Cnf.FindFile("Dir::Aptitude::State"));
 
-	//FIXME: Test for configuration file parsing;
-	// currently only integration/ tests test them implicitly
+	Cnf.Set("RootDir", "/");
+	EXPECT_EQ("/srv/sid/var/lib/apt", Cnf.FindFile("Dir::State"));
+	EXPECT_EQ("/srv/sid/var/lib/aptitude", Cnf.FindFile("Dir::Aptitude::State"));
+	Cnf.Set("RootDir", "//./////.////");
+	EXPECT_EQ("/srv/sid/var/lib/apt", Cnf.FindFile("Dir::State"));
+	EXPECT_EQ("/srv/sid/var/lib/aptitude", Cnf.FindFile("Dir::Aptitude::State"));
+	Cnf.Set("RootDir", "/rootdir");
+	EXPECT_EQ("/rootdir/srv/sid/var/lib/apt", Cnf.FindFile("Dir::State"));
+	EXPECT_EQ("/rootdir/srv/sid/var/lib/aptitude", Cnf.FindFile("Dir::Aptitude::State"));
+	Cnf.Set("RootDir", "/rootdir/");
+	EXPECT_EQ("/rootdir/srv/sid/var/lib/apt", Cnf.FindFile("Dir::State"));
+	EXPECT_EQ("/rootdir/srv/sid/var/lib/aptitude", Cnf.FindFile("Dir::Aptitude::State"));
+
+	Cnf.Set("Dir::State", "/dev/null");
+	Cnf.Set("Dir::State::lists", "lists/");
+	EXPECT_EQ("/rootdir/dev/null", Cnf.FindDir("Dir::State"));
+	EXPECT_EQ("/rootdir/dev/null", Cnf.FindDir("Dir::State::lists"));
+}
+TEST(ConfigurationTest,Vector)
+{
+	Configuration Cnf;
 
-	return 0;
+	std::vector<std::string> vec = Cnf.FindVector("Test::Vector", "");
+	EXPECT_EQ(0, vec.size());
+	vec = Cnf.FindVector("Test::Vector", "foo");
+	ASSERT_EQ(1, vec.size());
+	EXPECT_EQ("foo", vec[0]);
+	vec = Cnf.FindVector("Test::Vector", "foo,bar");
+	EXPECT_EQ(2, vec.size());
+	EXPECT_EQ("foo", vec[0]);
+	EXPECT_EQ("bar", vec[1]);
+	Cnf.Set("Test::Vector::", "baz");
+	Cnf.Set("Test::Vector::", "bob");
+	Cnf.Set("Test::Vector::", "dob");
+	vec = Cnf.FindVector("Test::Vector");
+	ASSERT_EQ(3, vec.size());
+	EXPECT_EQ("baz", vec[0]);
+	EXPECT_EQ("bob", vec[1]);
+	EXPECT_EQ("dob", vec[2]);
+	vec = Cnf.FindVector("Test::Vector", "foo,bar");
+	ASSERT_EQ(3, vec.size());
+	EXPECT_EQ("baz", vec[0]);
+	EXPECT_EQ("bob", vec[1]);
+	EXPECT_EQ("dob", vec[2]);
+	Cnf.Set("Test::Vector", "abel,bravo");
+	vec = Cnf.FindVector("Test::Vector", "foo,bar");
+	ASSERT_EQ(2, vec.size());
+	EXPECT_EQ("abel", vec[0]);
+	EXPECT_EQ("bravo", vec[1]);
 }