Skip to content

Commit 5f7b535

Browse files
committed
parsePathFlakeRefWithFragment(): Add unit tests
1 parent 83ff523 commit 5f7b535

File tree

1 file changed

+45
-5
lines changed

1 file changed

+45
-5
lines changed

src/libflake-tests/flakeref.cc

Lines changed: 45 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,58 @@ namespace nix {
77

88
/* ----------- tests for flake/flakeref.hh --------------------------------------------------*/
99

10-
/* ----------------------------------------------------------------------------
11-
* to_string
12-
* --------------------------------------------------------------------------*/
10+
TEST(parseFlakeRef, path) {
11+
fetchers::Settings fetchSettings;
12+
13+
{
14+
auto s = "/foo/bar";
15+
auto flakeref = parseFlakeRef(fetchSettings, s);
16+
ASSERT_EQ(flakeref.to_string(), "path:/foo/bar");
17+
}
18+
19+
{
20+
auto s = "/foo/bar?revCount=123&rev=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
21+
auto flakeref = parseFlakeRef(fetchSettings, s);
22+
ASSERT_EQ(flakeref.to_string(), "path:/foo/bar?rev=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa&revCount=123");
23+
}
24+
25+
{
26+
auto s = "/foo/bar?xyzzy=123";
27+
EXPECT_THROW(
28+
parseFlakeRef(fetchSettings, s),
29+
Error);
30+
}
31+
32+
{
33+
auto s = "/foo/bar#bla";
34+
EXPECT_THROW(
35+
parseFlakeRef(fetchSettings, s),
36+
Error);
37+
}
38+
39+
{
40+
auto s = "/foo/bar#bla";
41+
auto [flakeref, fragment] = parseFlakeRefWithFragment(fetchSettings, s);
42+
ASSERT_EQ(flakeref.to_string(), "path:/foo/bar");
43+
ASSERT_EQ(fragment, "bla");
44+
}
45+
46+
{
47+
auto s = "/foo/bar?revCount=123#bla";
48+
auto [flakeref, fragment] = parseFlakeRefWithFragment(fetchSettings, s);
49+
ASSERT_EQ(flakeref.to_string(), "path:/foo/bar?revCount=123");
50+
ASSERT_EQ(fragment, "bla");
51+
}
52+
}
1353

1454
TEST(to_string, doesntReencodeUrl) {
1555
fetchers::Settings fetchSettings;
1656
auto s = "http://localhost:8181/test/+3d.tar.gz";
1757
auto flakeref = parseFlakeRef(fetchSettings, s);
18-
auto parsed = flakeref.to_string();
58+
auto unparsed = flakeref.to_string();
1959
auto expected = "http://localhost:8181/test/%2B3d.tar.gz";
2060

21-
ASSERT_EQ(parsed, expected);
61+
ASSERT_EQ(unparsed, expected);
2262
}
2363

2464
}

0 commit comments

Comments
 (0)