mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-07-28 11:49:44 +00:00
AK: Add LexicalPath::is_child_of
This API checks whether this path is a child of (or the same as) another path.
This commit is contained in:
parent
4625f7aab5
commit
16ca41ec10
Notes:
sideshowbarker
2024-07-17 03:27:13 +09:00
Author: https://github.com/kleinesfilmroellchen
Commit: 16ca41ec10
Pull-request: https://github.com/SerenityOS/serenity/pull/14393
Reviewed-by: https://github.com/ADKaster ✅
Reviewed-by: https://github.com/sin-ack
3 changed files with 58 additions and 0 deletions
|
@ -208,3 +208,44 @@ TEST_CASE(parent)
|
|||
EXPECT_EQ(parent.string(), "/");
|
||||
}
|
||||
}
|
||||
|
||||
TEST_CASE(is_child_of)
|
||||
{
|
||||
{
|
||||
LexicalPath parent("/a/parent/directory");
|
||||
LexicalPath child("/a/parent/directory/a/child");
|
||||
LexicalPath mismatching("/not/a/child/directory");
|
||||
EXPECT(child.is_child_of(parent));
|
||||
EXPECT(child.is_child_of(child));
|
||||
EXPECT(parent.is_child_of(parent));
|
||||
EXPECT(!parent.is_child_of(child));
|
||||
EXPECT(!mismatching.is_child_of(parent));
|
||||
|
||||
EXPECT(parent.is_child_of(parent.parent()));
|
||||
EXPECT(child.parent().parent().is_child_of(parent));
|
||||
EXPECT(!child.parent().parent().parent().is_child_of(parent));
|
||||
}
|
||||
{
|
||||
LexicalPath root("/");
|
||||
EXPECT(LexicalPath("/").is_child_of(root));
|
||||
EXPECT(LexicalPath("/any").is_child_of(root));
|
||||
EXPECT(LexicalPath("/child/directory").is_child_of(root));
|
||||
}
|
||||
{
|
||||
LexicalPath relative("folder");
|
||||
LexicalPath relative_child("folder/sub");
|
||||
LexicalPath absolute("/folder");
|
||||
LexicalPath absolute_child("/folder/sub");
|
||||
EXPECT(relative_child.is_child_of(relative));
|
||||
EXPECT(absolute_child.is_child_of(absolute));
|
||||
|
||||
EXPECT(relative.is_child_of(absolute));
|
||||
EXPECT(relative.is_child_of(absolute_child));
|
||||
EXPECT(relative_child.is_child_of(absolute));
|
||||
EXPECT(relative_child.is_child_of(absolute_child));
|
||||
|
||||
EXPECT(!absolute.is_child_of(relative));
|
||||
EXPECT(!absolute_child.is_child_of(relative));
|
||||
EXPECT(!absolute_child.is_child_of(relative_child));
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue