@@ -7,18 +7,60 @@ namespace nix {
77
88/* ----------- tests for flake/flakeref.hh --------------------------------------------------*/
99
10- /* ----------------------------------------------------------------------------
11- * to_string
12- * --------------------------------------------------------------------------*/
10+ TEST (parseFlakeRef, path) {
11+ experimentalFeatureSettings.experimentalFeatures .get ().insert (Xp::Flakes);
12+
13+ fetchers::Settings fetchSettings;
14+
15+ {
16+ auto s = " /foo/bar" ;
17+ auto flakeref = parseFlakeRef (fetchSettings, s);
18+ ASSERT_EQ (flakeref.to_string (), " path:/foo/bar" );
19+ }
20+
21+ {
22+ auto s = " /foo/bar?revCount=123&rev=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" ;
23+ auto flakeref = parseFlakeRef (fetchSettings, s);
24+ ASSERT_EQ (flakeref.to_string (), " path:/foo/bar?rev=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa&revCount=123" );
25+ }
26+
27+ {
28+ auto s = " /foo/bar?xyzzy=123" ;
29+ EXPECT_THROW (
30+ parseFlakeRef (fetchSettings, s),
31+ Error);
32+ }
33+
34+ {
35+ auto s = " /foo/bar#bla" ;
36+ EXPECT_THROW (
37+ parseFlakeRef (fetchSettings, s),
38+ Error);
39+ }
40+
41+ {
42+ auto s = " /foo/bar#bla" ;
43+ auto [flakeref, fragment] = parseFlakeRefWithFragment (fetchSettings, s);
44+ ASSERT_EQ (flakeref.to_string (), " path:/foo/bar" );
45+ ASSERT_EQ (fragment, " bla" );
46+ }
47+
48+ {
49+ auto s = " /foo/bar?revCount=123#bla" ;
50+ auto [flakeref, fragment] = parseFlakeRefWithFragment (fetchSettings, s);
51+ ASSERT_EQ (flakeref.to_string (), " path:/foo/bar?revCount=123" );
52+ ASSERT_EQ (fragment, " bla" );
53+ }
54+ }
1355
1456 TEST (to_string, doesntReencodeUrl) {
1557 fetchers::Settings fetchSettings;
1658 auto s = " http://localhost:8181/test/+3d.tar.gz" ;
1759 auto flakeref = parseFlakeRef (fetchSettings, s);
18- auto parsed = flakeref.to_string ();
60+ auto unparsed = flakeref.to_string ();
1961 auto expected = " http://localhost:8181/test/%2B3d.tar.gz" ;
2062
21- ASSERT_EQ (parsed , expected);
63+ ASSERT_EQ (unparsed , expected);
2264 }
2365
2466}
0 commit comments