diff --git a/.gitignore b/.gitignore index 81e17c8..ee7b914 100644 --- a/.gitignore +++ b/.gitignore @@ -6,6 +6,7 @@ *~ *# #*# +.DS_Store # Config file .babelish diff --git a/lib/babelish/android2csv.rb b/lib/babelish/android2csv.rb index b6e6ffd..d8d777a 100644 --- a/lib/babelish/android2csv.rb +++ b/lib/babelish/android2csv.rb @@ -15,7 +15,11 @@ def load_strings(strings_filename) end parser.xpath("//string").each do |node| if !node.nil? && !node["name"].nil? - strings.merge!(node["name"] => node.inner_html) + if node.children.first.class.to_s == "Nokogiri::XML::CDATA" + strings.merge!(node["name"] => "") + else + strings.merge!(node["name"] => node.inner_html) + end end end diff --git a/test/babelish/test_android2csv.rb b/test/babelish/test_android2csv.rb index d38a43e..802c6e5 100644 --- a/test/babelish/test_android2csv.rb +++ b/test/babelish/test_android2csv.rb @@ -50,4 +50,23 @@ def test_special_chars # clean up system("rm -rf ./" + csv_filename) end + + def test_cdata_are_not_removed + csv_filename = "./test.csv" + filename = "test/data/android_cdata.xml" + headers = %w{variables german} + + expected_output = [["html"], {filename => {"html" => "Text
]]>"}}]
+ converter = Babelish::Android2CSV.new(
+ :csv_filename => csv_filename,
+ :headers => headers,
+ :filenames => [filename])
+
+ output = converter.convert(false)
+
+ assert_equal expected_output, output
+
+ # clean up
+ system("rm -rf ./" + csv_filename)
+ end
end
diff --git a/test/data/android_cdata.xml b/test/data/android_cdata.xml
new file mode 100644
index 0000000..29189d0
--- /dev/null
+++ b/test/data/android_cdata.xml
@@ -0,0 +1,4 @@
+
+ ]]>