/* Copyright 2015, 2016, Michele Santullo
* This file is part of "dindexer".
*
* "dindexer" is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* "dindexer" is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with "dindexer". If not, see .
*/
#include
#include "pathname.hpp"
TEST(machinery, pathname) {
using mchlib::PathName;
{
PathName empty_path("");
EXPECT_EQ("", empty_path.path());
EXPECT_EQ(0, empty_path.atom_count());
}
{
PathName test_slash("home/");
EXPECT_FALSE(test_slash.is_absolute());
EXPECT_EQ("home", test_slash.path());
EXPECT_EQ(1, test_slash.atom_count());
PathName test("home");
EXPECT_FALSE(test.is_absolute());
EXPECT_EQ("home", test.path());
EXPECT_EQ(1, test.atom_count());
EXPECT_EQ(test, test_slash);
}
{
PathName test("/home/");
EXPECT_TRUE(test.is_absolute());
EXPECT_EQ("/home", test.path());
EXPECT_EQ(1, test.atom_count());
test.join("duckz/documents/libreoffice");
EXPECT_TRUE(test.is_absolute());
EXPECT_EQ(4, test.atom_count());
EXPECT_EQ("/home/duckz/documents/libreoffice", test.path());
test.pop_right();
EXPECT_EQ(3, test.atom_count());
EXPECT_EQ("/home/duckz/documents", test.path());
test.join("attachments");
test.join("important");
EXPECT_EQ(5, test.atom_count());
EXPECT_EQ("/home/duckz/documents/attachments/important", test.path());
PathName attachments = mchlib::make_relative_path(PathName("/home/duckz/documents"), test);
EXPECT_FALSE(attachments.is_absolute());
EXPECT_EQ(2, attachments.atom_count());
EXPECT_EQ("attachments/important", attachments.path());
}
}
TEST(machinery, pathname_functions) {
using mchlib::PathName;
using mchlib::make_relative_path;
using mchlib::basename;
using mchlib::is_ancestor;
using mchlib::are_siblings;
}