@@ -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