|
1 |
| -import { encodeTitleURI, revertTitleLc, toTitleLc } from "./title.ts"; |
| 1 | +import { |
| 2 | + encodeTitleURI, |
| 3 | + revertTitleLc, |
| 4 | + toReadableTitleURI, |
| 5 | + toTitleLc, |
| 6 | +} from "./title.ts"; |
2 | 7 | import { assertStrictEquals } from "./deps/testing.ts";
|
3 | 8 |
|
4 | 9 | Deno.test("toTitleLc()", async (t) => {
|
@@ -37,3 +42,37 @@ Deno.test("encodeTitleURI()", async (t) => {
|
37 | 42 | assertStrictEquals<string>(encodeTitleURI(":title:"), ":title%3A");
|
38 | 43 | });
|
39 | 44 | });
|
| 45 | + |
| 46 | +Deno.test("toReadableTitleURI()", async (t) => { |
| 47 | + await t.step("only \\w", () => { |
| 48 | + assertStrictEquals<string>( |
| 49 | + toReadableTitleURI("Normal_TitleAAA"), |
| 50 | + "Normal_TitleAAA", |
| 51 | + ); |
| 52 | + }); |
| 53 | + |
| 54 | + await t.step("with sparce", () => { |
| 55 | + assertStrictEquals<string>( |
| 56 | + toReadableTitleURI("Title with Spaces"), |
| 57 | + "Title_with_Spaces", |
| 58 | + ); |
| 59 | + }); |
| 60 | + |
| 61 | + await t.step("with multibyte characters", () => { |
| 62 | + assertStrictEquals<string>( |
| 63 | + toReadableTitleURI("日本語_(絵文字✨つき) タイトル"), |
| 64 | + "日本語_(絵文字✨つき) タイトル", |
| 65 | + ); |
| 66 | + }); |
| 67 | + |
| 68 | + await t.step("encoding //", () => { |
| 69 | + assertStrictEquals<string>( |
| 70 | + toReadableTitleURI("スラッシュ/は/percent encoding対象の/文字です"), |
| 71 | + "スラッシュ%2Fは%2Fpercent_encoding対象の%2F文字です", |
| 72 | + ); |
| 73 | + assertStrictEquals<string>( |
| 74 | + toReadableTitleURI("%2Fなども/と同様percent encodingされる"), |
| 75 | + "%252Fなども%2Fと同様percent_encodingされる", |
| 76 | + ); |
| 77 | + }); |
| 78 | +}); |
0 commit comments