1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.yaml.snakeyaml.issues.issue137;
17
18 import java.io.UnsupportedEncodingException;
19
20 import junit.framework.TestCase;
21
22 import org.yaml.snakeyaml.Yaml;
23
24
25
26
27 public class SupplementaryCharactersTest extends TestCase {
28
29 public void testSupplementaryCharacter() {
30 Yaml yaml = new Yaml();
31 String parsed = (String) yaml.load("\"\\U0001f648\"");
32 assertEquals("\ud83d\ude48", parsed);
33
34 }
35
36 public void testBasicMultilingualPlane() {
37 Yaml yaml = new Yaml();
38 String parsed = (String) yaml.load("\"\\U00000041\"");
39 assertEquals("A", parsed);
40 }
41
42
43
44
45 public void testDumpSupplementaryCharacter() throws UnsupportedEncodingException {
46 String supplementary = "\ud83d\ude48";
47 Yaml yaml = new Yaml();
48 String output = yaml.dump(supplementary);
49 assertEquals("!!binary |-\n 8J+ZiA==\n", output);
50 byte[] binary = (byte[]) yaml.load(output);
51 String binString = new String(binary, "UTF-8");
52 assertEquals(supplementary, binString);
53 }
54
55 public void testLoadSupplementaryCharacter() {
56 try {
57 new Yaml().load("\"\ud83d\ude48\"\n");
58 fail("Are Supplementary Characters printable ?");
59 } catch (Exception e) {
60 assertEquals("special characters are not allowed", e.getMessage());
61 }
62 }
63 }