X-Git-Url: http://git.tdb.fi/?p=libs%2Fcore.git;a=blobdiff_plain;f=tests%2Fpath.cpp;h=0811c49a28457c35f6d2fa04fbf2d7d2d4962c5d;hp=fe85ab89c60585759f6410d5557f1773cab58648;hb=96dadad38bc0b114174a7d4a707cdd8e88fce3aa;hpb=5eb788bd9a41895585d4bb366a683437ddf63ad5 diff --git a/tests/path.cpp b/tests/path.cpp index fe85ab8..0811c49 100644 --- a/tests/path.cpp +++ b/tests/path.cpp @@ -17,7 +17,10 @@ private: void concatenation(); void iterator_abs(); void iterator_rel(); + void iterator_special(); + void invalid_iterator(); void indexing(); + void invalid_index(); }; PathTests::PathTests() @@ -27,7 +30,10 @@ PathTests::PathTests() add(&PathTests::concatenation, "Concatenation"); add(&PathTests::iterator_abs, "Iterator (absolute path)"); add(&PathTests::iterator_rel, "Iterator (relative path)"); + add(&PathTests::iterator_special, "Iterator (special cases)"); + add(&PathTests::invalid_iterator, "Invalid iterator").expect_throw(); add(&PathTests::indexing, "Indexing"); + add(&PathTests::invalid_index, "Invalid index").expect_throw(); } void PathTests::empty() @@ -95,6 +101,30 @@ void PathTests::iterator_rel() EXPECT(iter==path.end()); } +void PathTests::iterator_special() +{ + FS::Path path; + EXPECT(path.begin()==path.end()); + + path = "."; + FS::Path::Iterator iter = path.begin(); + EXPECT_EQUAL(*iter, "."); + ++iter; + EXPECT(iter==path.end()); + + path = "/"; + iter = path.begin(); + EXPECT_EQUAL(*iter, "/"); + ++iter; + EXPECT(iter==path.end()); +} + +void PathTests::invalid_iterator() +{ + FS::Path path("foo"); + *path.end(); +} + void PathTests::indexing() { FS::Path path("/foo/bar"); @@ -103,3 +133,9 @@ void PathTests::indexing() EXPECT_EQUAL(path[1], "foo"); EXPECT_EQUAL(path[-1], "bar"); } + +void PathTests::invalid_index() +{ + FS::Path path("foo"); + path[3]; +}