Skip to content

Commit 939678e

Browse files
committed
Add enex_converter_spec
1 parent eeb0a39 commit 939678e

File tree

4 files changed

+49
-0
lines changed

4 files changed

+49
-0
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,4 @@
77
/pkg/
88
/spec/reports/
99
/tmp/
10+
/spec/dist

lib/ever2boost/json_generator.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
require 'json'
2+
require 'ever2boost/util'
23

34
module Ever2boost
45
class JsonGenerator
@@ -17,6 +18,7 @@ def build(notebook_list)
1718
end
1819

1920
def output(notebook_list, output_dir)
21+
Util.make_output_dir(output_dir)
2022
File.open("#{output_dir}/boostnote.json","w") do |f|
2123
f.write(self.build(notebook_list))
2224
end

spec/enex_converter_spec.rb

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
require 'spec_helper'
2+
require 'fileutils'
3+
4+
describe Ever2boost::EnexConverter do
5+
let(:enex) { File.read('spec/lorem.enex') }
6+
let(:output_dir) { 'spec/dist/evernote_storage' }
7+
let(:filename) { 'lorem' }
8+
let(:cson_folder_hash) do
9+
cson_filename = `ls spec/dist/evernote_storage/notes`.lines.first.chomp
10+
File.read("#{output_dir}/notes/#{cson_filename}").lines[1].chomp.slice(/[a-f0-9]{12}/)
11+
end
12+
let(:json_folder_hash) do
13+
json = File.read("#{output_dir}/boostnote.json")
14+
JSON.parse(json)['folders'].first["key"]
15+
end
16+
17+
describe '#convert' do
18+
before do
19+
Ever2boost::EnexConverter.convert(enex, output_dir, filename)
20+
end
21+
22+
after do
23+
FileUtils.rm_r(output_dir)
24+
end
25+
26+
it 'should generate boostnote.json' do
27+
expect(File.exist?("#{output_dir}/boostnote.json")).to be_truthy
28+
end
29+
30+
it 'should generate notes/*.cson' do
31+
expect(File.exist?("#{output_dir}/notes")).to be_truthy
32+
end
33+
34+
it 'generate a note which has correct folder hash' do
35+
expect(cson_folder_hash).to eq(json_folder_hash)
36+
end
37+
end
38+
end

spec/lorem.enex

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!DOCTYPE en-export SYSTEM "http://xml.evernote.com/pub/evernote-export3.dtd">
3+
<en-export export-date="20170126T155827Z" application="Evernote" version="Evernote Mac 6.10 (454269)">
4+
<note><title>Lorem ipsum</title><content><![CDATA[<?xml version="1.0" encoding="UTF-8" standalone="no"?>
5+
<!DOCTYPE en-note SYSTEM "http://xml.evernote.com/pub/enml2.dtd">
6+
<en-note><div><span style="color: rgb(0, 0, 0); font-family: 'Open Sans', Arial, sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: justify; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none;">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse blandit dolor vel tellus dignissim porta non id erat. Proin orci ipsum, pellentesque id mi vitae, aliquam imperdiet metus. Vestibulum tempus a arcu sit amet consequat. Nulla a ornare mauris, non semper tortor. Sed mollis neque eu arcu scelerisque lacinia. Sed blandit massa est, vel condimentum magna vulputate quis. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. In blandit metus vitae magna fermentum laoreet. Phasellus vel nisl elementum, egestas purus eu, elementum nibh. Integer in sem a lacus scelerisque ultrices ut sed lorem. Cras volutpat metus in quam auctor, ac feugiat est consequat.</span><br/></div><div><br/></div></en-note>
7+
]]></content><created>20170126T155759Z</created><updated>20170126T155808Z</updated><note-attributes><author>asmsuechan</author><source>desktop.mac</source><reminder-order>0</reminder-order></note-attributes></note>
8+
</en-export>

0 commit comments

Comments
 (0)