Add an example for escaping line breaks in binary content
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 0e9d1b3..f60d730 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -7,6 +7,9 @@
</properties>
<body>
<release version="1.8-SNAPSHOT" date="in Mercurial" description="Performance improvement">
+ <action dev="py4fun" type="update" issue="99">
+ Add an example for escaping line breaks in binary content (2011-01-03)
+ </action>
<action dev="py4fun" type="update" issue="97">
Propose a solution for JavaBeans to support SortedSet property when it is encoded
as a sequence (2010-11-24)
diff --git a/src/test/java/org/yaml/snakeyaml/issues/issue99/YamlBase64Test.java b/src/test/java/org/yaml/snakeyaml/issues/issue99/YamlBase64Test.java
new file mode 100644
index 0000000..cd77c54
--- /dev/null
+++ b/src/test/java/org/yaml/snakeyaml/issues/issue99/YamlBase64Test.java
@@ -0,0 +1,95 @@
+/**
+ * Copyright (c) 2008-2010, http://www.snakeyaml.org
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.yaml.snakeyaml.issues.issue99;
+
+import java.io.BufferedInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Map;
+
+import junit.framework.TestCase;
+
+import org.yaml.snakeyaml.Util;
+import org.yaml.snakeyaml.Yaml;
+import org.yaml.snakeyaml.YamlDocument;
+
+import biz.source_code.base64Coder.Base64Coder;
+
+/**
+ * issue 99
+ */
+public class YamlBase64Test extends TestCase {
+
+ /**
+ * test base64 decoding
+ */
+ public void testBase64() throws IOException {
+ String text = Util.getLocalResource("issues/issue99-base64_literal.yaml");
+ String[] lines = text.split("\n");
+ String all = "";
+ for (int i = 1; i < lines.length; i++) {// skip first line
+ all = all + lines[i].trim();
+ }
+ // System.out.println(all);
+ byte[] decoded = Base64Coder.decode(all.toCharArray());
+ assertEquals(3737, decoded.length);
+ checkBytes(decoded);
+ }
+
+ @SuppressWarnings("unchecked")
+ public void testYamlBase64Loading() throws IOException {
+ Yaml yaml = new Yaml();
+ InputStream inputStream = YamlBase64Test.class
+ .getResourceAsStream("/issues/issue99-base64_double_quoted.yaml");
+ Map<String, Object> bean = (Map<String, Object>) yaml.load(inputStream);
+ byte[] jpeg = (byte[]) bean.get("jpegPhoto");
+ checkBytes(jpeg);
+ }
+
+ private void checkBytes(byte[] jpeg) throws IOException {
+ InputStream input;
+ input = YamlDocument.class.getClassLoader().getResourceAsStream("issues/issue99.jpeg");
+ BufferedInputStream is = new BufferedInputStream(input);
+ int i = 0;
+ while (i < jpeg.length) {
+ int etalon = is.read();
+ if (jpeg[i] < 0) {
+ assertEquals(etalon, jpeg[i] + 256);
+ } else {
+ assertEquals(etalon, jpeg[i]);
+ }
+ i++;
+ }
+ is.close();
+ }
+
+ /**
+ * In the literal scalar all the line breaks are significant
+ */
+ public void testYamlBase64LoadingLiteral() {
+ Yaml yaml = new Yaml();
+ InputStream inputStream = YamlBase64Test.class
+ .getResourceAsStream("/issues/issue99-base64_literal.yaml");
+ try {
+ yaml.load(inputStream);
+ fail();
+ } catch (Exception e) {
+ assertEquals("Length of Base64 encoded input string is not a multiple of 4.", e
+ .getMessage());
+ }
+ }
+}
diff --git a/src/test/resources/issues/issue99-base64_double_quoted.yaml b/src/test/resources/issues/issue99-base64_double_quoted.yaml
new file mode 100644
index 0000000..8c1fccc
--- /dev/null
+++ b/src/test/resources/issues/issue99-base64_double_quoted.yaml
@@ -0,0 +1,82 @@
+jpegPhoto: !!binary
+ "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"
+
+
+
\ No newline at end of file
diff --git a/src/test/resources/issues/issue99-base64_literal.yaml b/src/test/resources/issues/issue99-base64_literal.yaml
new file mode 100644
index 0000000..dc03a87
--- /dev/null
+++ b/src/test/resources/issues/issue99-base64_literal.yaml
@@ -0,0 +1,82 @@
+jpegPhoto: !!binary |-
+ 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
+
+
+
\ No newline at end of file
diff --git a/src/test/resources/issues/issue99.jpeg b/src/test/resources/issues/issue99.jpeg
new file mode 100644
index 0000000..3258ec5
--- /dev/null
+++ b/src/test/resources/issues/issue99.jpeg
Binary files differ