|
1 | 1 | open Lsp |
2 | 2 |
|
| 3 | +let run_with_modes f = |
| 4 | + print_endline "Unix:"; |
| 5 | + Lsp.Uri.Private.win32 := false; |
| 6 | + f (); |
| 7 | + print_endline "Windows:"; |
| 8 | + Lsp.Uri.Private.win32 := true; |
| 9 | + f () |
| 10 | + |
| 11 | +let test_uri_parsing = |
| 12 | + let test s = |
| 13 | + let uri = Uri.t_of_yojson (`String s) in |
| 14 | + Printf.printf "%s -> %s\n" s (Uri.to_path uri) |
| 15 | + in |
| 16 | + fun uris -> run_with_modes (fun () -> List.iter test uris) |
| 17 | + |
3 | 18 | let%expect_test "test uri parsing" = |
4 | | - let uri = Uri.t_of_yojson (`String "file:///Users/foo") in |
5 | | - print_endline (Uri.to_path uri); |
6 | | - [%expect {| |
7 | | - /Users/foo |}]; |
8 | | - print_endline (Uri.to_string uri); |
9 | | - [%expect {| file:///Users/foo |}]; |
10 | | - let uri = Uri.t_of_yojson (`String "file:///c:/Users/foo") in |
11 | | - print_endline (Uri.to_path uri); |
12 | | - [%expect {| /c:/Users/foo |}]; |
13 | | - print_endline (Uri.to_string uri); |
| 19 | + test_uri_parsing [ "file:///Users/foo"; "file:///c:/Users/foo" ]; |
14 | 20 | [%expect {| |
15 | | - file:///c:/Users/foo |}] |
| 21 | + Unix: |
| 22 | + file:///Users/foo -> /Users/foo |
| 23 | + file:///c:/Users/foo -> /c:/Users/foo |
| 24 | + Windows: |
| 25 | + file:///Users/foo -> Users/foo |
| 26 | + file:///c:/Users/foo -> c:/Users/foo |}] |
| 27 | + |
| 28 | +let uri_of_path = |
| 29 | + let test path = |
| 30 | + let uri = Uri.of_path path in |
| 31 | + Printf.printf "%s -> %s\n" path (Uri.to_string uri) |
| 32 | + in |
| 33 | + fun uris -> run_with_modes (fun () -> List.iter test uris) |
16 | 34 |
|
17 | 35 | let%expect_test "uri of path" = |
18 | | - let uri = Uri.of_path "/foo/bar.ml" in |
19 | | - print_endline (Uri.to_string uri); |
20 | | - [%expect {| |
21 | | - file:///foo/bar.ml |}]; |
22 | | - let uri = Uri.of_path "foo/bar.mli" in |
23 | | - print_endline (Uri.to_string uri); |
| 36 | + uri_of_path [ "/foo/bar.ml"; "foo/bar.mli" ]; |
24 | 37 | [%expect {| |
25 | | - file:///foo/bar.mli |}] |
| 38 | + Unix: |
| 39 | + /foo/bar.ml -> file:///foo/bar.ml |
| 40 | + foo/bar.mli -> file:///foo/bar.mli |
| 41 | + Windows: |
| 42 | + /foo/bar.ml -> file:///foo/bar.ml |
| 43 | + foo/bar.mli -> file:///foo/bar.mli |}] |
0 commit comments