contentstack_utils 0.1.0.pre.beta.1 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +2 -2
- data/CHANGELOG.md +9 -1
- data/Gemfile.lock +22 -22
- data/README.md +9 -0
- data/contentstack_utils.gemspec +2 -2
- data/lib/contentstack_utils/model/metadata.rb +36 -11
- data/lib/contentstack_utils/model/options.rb +84 -5
- data/lib/contentstack_utils/utils.rb +109 -0
- data/lib/contentstack_utils/version.rb +1 -1
- data/spec/lib/model/metadata_spec.rb +40 -0
- data/spec/lib/model/option_spec.rb +216 -0
- data/spec/lib/utils_spec.rb +578 -0
- data/spec/mock/json_to_html_mock.rb +146 -0
- data/spec/support/xml_parse.rb +18 -0
- metadata +24 -10
@@ -51,5 +51,45 @@ RSpec.describe ContentstackUtils::Model::Metadata do
|
|
51
51
|
expect(metadata.text).to eq 'TEST'
|
52
52
|
end
|
53
53
|
end
|
54
|
+
|
55
|
+
it 'Asset Json To metadata' do
|
56
|
+
doc = getJson(AssetReferenceJson)
|
57
|
+
metadata = ContentstackUtils::Model::Metadata.new(doc["children"][0])
|
58
|
+
expect(metadata.item_type).to eq "asset"
|
59
|
+
expect(metadata.style_type).to eq "display"
|
60
|
+
expect(metadata.item_uid).to eq "blt44asset"
|
61
|
+
expect(metadata.content_type_uid).to eq 'sys_assets'
|
62
|
+
expect(metadata.text).to eq ''
|
63
|
+
end
|
64
|
+
|
65
|
+
it 'Entry Block Json To metadata' do
|
66
|
+
doc = getJson(EntryReferenceBlockJson)
|
67
|
+
metadata = ContentstackUtils::Model::Metadata.new(doc["children"][0])
|
68
|
+
expect(metadata.item_type).to eq "entry"
|
69
|
+
expect(metadata.style_type).to eq "block"
|
70
|
+
expect(metadata.item_uid).to eq "blttitleuid"
|
71
|
+
expect(metadata.content_type_uid).to eq 'content_block'
|
72
|
+
expect(metadata.text).to eq ''
|
73
|
+
end
|
74
|
+
|
75
|
+
it 'Entry Link Json To metadata' do
|
76
|
+
doc = getJson(EntryReferenceLinkJson)
|
77
|
+
metadata = ContentstackUtils::Model::Metadata.new(doc["children"][0])
|
78
|
+
expect(metadata.item_type).to eq "entry"
|
79
|
+
expect(metadata.style_type).to eq "link"
|
80
|
+
expect(metadata.item_uid).to eq "bltemmbedEntryuid"
|
81
|
+
expect(metadata.content_type_uid).to eq 'embeddedrte'
|
82
|
+
expect(metadata.text).to eq "/copy-of-entry-final-02"
|
83
|
+
end
|
84
|
+
|
85
|
+
it 'Entry Inline Json To metadata' do
|
86
|
+
doc = getJson(EntryReferenceInlineJson)
|
87
|
+
metadata = ContentstackUtils::Model::Metadata.new(doc["children"][0])
|
88
|
+
expect(metadata.item_type).to eq "entry"
|
89
|
+
expect(metadata.style_type).to eq "inline"
|
90
|
+
expect(metadata.item_uid).to eq "blttitleUpdateuid"
|
91
|
+
expect(metadata.content_type_uid).to eq 'embeddedrte'
|
92
|
+
expect(metadata.text).to eq ''
|
93
|
+
end
|
54
94
|
end
|
55
95
|
end
|
@@ -82,5 +82,221 @@ RSpec.describe ContentstackUtils::Model::Options do
|
|
82
82
|
expect(subject.render_option(ASSET_CONTENT_URL, getMetadata('entry', 'download', linkText))).
|
83
83
|
to eq "<a href='url'>#{linkText}</a>"
|
84
84
|
end
|
85
|
+
|
86
|
+
it 'Should return Mark text html' do
|
87
|
+
expect(subject.render_mark('bold', linkText)).
|
88
|
+
to eq "<strong>#{linkText}</strong>"
|
89
|
+
expect(subject.render_mark('italic', linkText)).
|
90
|
+
to eq "<em>#{linkText}</em>"
|
91
|
+
expect(subject.render_mark('underline', linkText)).
|
92
|
+
to eq "<u>#{linkText}</u>"
|
93
|
+
expect(subject.render_mark('strikethrough', linkText)).
|
94
|
+
to eq "<strike>#{linkText}</strike>"
|
95
|
+
expect(subject.render_mark('inlineCode', linkText)).
|
96
|
+
to eq "<span>#{linkText}</span>"
|
97
|
+
expect(subject.render_mark('subscript', linkText)).
|
98
|
+
to eq "<sub>#{linkText}</sub>"
|
99
|
+
expect(subject.render_mark('superscript', linkText)).
|
100
|
+
to eq "<sup>#{linkText}</sup>"
|
101
|
+
expect(subject.render_mark('', linkText)).
|
102
|
+
to eq linkText
|
103
|
+
end
|
104
|
+
|
105
|
+
it 'Should return blank string for doc node type' do
|
106
|
+
doc = getJson(BlankDocument)
|
107
|
+
|
108
|
+
result = subject.render_node('doc', doc, linkText)
|
109
|
+
expect(result).to eq ""
|
110
|
+
end
|
111
|
+
|
112
|
+
it 'Should return paragraph string for paragrpah node type' do
|
113
|
+
doc = getJson(BlankDocument)
|
114
|
+
|
115
|
+
result = subject.render_node('p', doc, linkText)
|
116
|
+
expect(result).to eq "<p>#{linkText}</p>"
|
117
|
+
end
|
118
|
+
|
119
|
+
it 'Should return link string with blank href for link node type' do
|
120
|
+
doc = getJson(BlankDocument)
|
121
|
+
|
122
|
+
result = subject.render_node('a', doc, linkText)
|
123
|
+
expect(result).to eq "<a href=''>#{linkText}</a>"
|
124
|
+
end
|
125
|
+
|
126
|
+
it 'Should return link string for link node type' do
|
127
|
+
doc = getJson(LinkInPJson)["children"][0]
|
128
|
+
|
129
|
+
result = subject.render_node('a', doc, linkText)
|
130
|
+
expect(result).to eq "<a href='#{doc["attrs"]["href"]}'>#{linkText}</a>"
|
131
|
+
end
|
132
|
+
|
133
|
+
it 'Should return image string with blank src for image node type' do
|
134
|
+
doc = getJson(BlankDocument)
|
135
|
+
|
136
|
+
result = subject.render_node('img', doc, linkText)
|
137
|
+
expect(result).to eq "<img src='' />#{linkText}"
|
138
|
+
end
|
139
|
+
|
140
|
+
it 'Should return link string for link node type' do
|
141
|
+
doc = getJson(ImgJson)["children"][0]
|
142
|
+
|
143
|
+
result = subject.render_node('img', doc, linkText)
|
144
|
+
expect(result).to eq "<img src='#{doc["attrs"]["src"]}' />#{linkText}"
|
145
|
+
end
|
146
|
+
|
147
|
+
it 'Should return embed string with blank src for embed node type' do
|
148
|
+
doc = getJson(BlankDocument)
|
149
|
+
|
150
|
+
result = subject.render_node('embed', doc, linkText)
|
151
|
+
expect(result).to eq "<iframe src=''></iframe>"
|
152
|
+
end
|
153
|
+
|
154
|
+
it 'Should return embed string for embed node type' do
|
155
|
+
doc = getJson(EmbedJson)["children"][0]
|
156
|
+
|
157
|
+
result = subject.render_node('embed', doc, linkText)
|
158
|
+
expect(result).to eq "<iframe src='#{doc["attrs"]["src"]}'></iframe>"
|
159
|
+
end
|
160
|
+
|
161
|
+
it 'Should return Heading 1 string for Heading 1 node type' do
|
162
|
+
doc = getJson(BlankDocument)
|
163
|
+
|
164
|
+
result = subject.render_node('h1', doc, linkText)
|
165
|
+
expect(result).to eq "<h1>#{linkText}</h1>"
|
166
|
+
end
|
167
|
+
|
168
|
+
it 'Should return Heading 2 string for Heading 2 node type' do
|
169
|
+
doc = getJson(BlankDocument)
|
170
|
+
|
171
|
+
result = subject.render_node('h2', doc, linkText)
|
172
|
+
expect(result).to eq "<h2>#{linkText}</h2>"
|
173
|
+
end
|
174
|
+
|
175
|
+
it 'Should return Heading 3 string for Heading 3 node type' do
|
176
|
+
doc = getJson(BlankDocument)
|
177
|
+
|
178
|
+
result = subject.render_node('h3', doc, linkText)
|
179
|
+
expect(result).to eq "<h3>#{linkText}</h3>"
|
180
|
+
end
|
181
|
+
|
182
|
+
it 'Should return Heading 4 string for Heading 4 node type' do
|
183
|
+
doc = getJson(BlankDocument)
|
184
|
+
|
185
|
+
result = subject.render_node('h4', doc, linkText)
|
186
|
+
expect(result).to eq "<h4>#{linkText}</h4>"
|
187
|
+
end
|
188
|
+
|
189
|
+
it 'Should return Heading 5 string for Heading 5 node type' do
|
190
|
+
doc = getJson(BlankDocument)
|
191
|
+
|
192
|
+
result = subject.render_node('h5', doc, linkText)
|
193
|
+
expect(result).to eq "<h5>#{linkText}</h5>"
|
194
|
+
end
|
195
|
+
|
196
|
+
it 'Should return Heading 6 string for Heading 6 node type' do
|
197
|
+
doc = getJson(BlankDocument)
|
198
|
+
|
199
|
+
result = subject.render_node('h6', doc, linkText)
|
200
|
+
expect(result).to eq "<h6>#{linkText}</h6>"
|
201
|
+
end
|
202
|
+
|
203
|
+
it 'Should return Hr string for Hr node type' do
|
204
|
+
doc = getJson(BlankDocument)
|
205
|
+
|
206
|
+
result = subject.render_node('hr', doc, linkText)
|
207
|
+
expect(result).to eq "<hr />"
|
208
|
+
end
|
209
|
+
|
210
|
+
it 'Should return order list string for order list node type' do
|
211
|
+
doc = getJson(BlankDocument)
|
212
|
+
|
213
|
+
result = subject.render_node('ol', doc, linkText)
|
214
|
+
expect(result).to eq "<ol>#{linkText}</ol>"
|
215
|
+
end
|
216
|
+
|
217
|
+
it 'Should return Unorder list string for Unorder list node type' do
|
218
|
+
doc = getJson(BlankDocument)
|
219
|
+
|
220
|
+
result = subject.render_node('ul', doc, linkText)
|
221
|
+
expect(result).to eq "<ul>#{linkText}</ul>"
|
222
|
+
end
|
223
|
+
|
224
|
+
it 'Should return list item string for list item node type' do
|
225
|
+
doc = getJson(BlankDocument)
|
226
|
+
|
227
|
+
result = subject.render_node('li', doc, linkText)
|
228
|
+
expect(result).to eq "<li>#{linkText}</li>"
|
229
|
+
end
|
230
|
+
|
231
|
+
it 'Should return table string for table node type' do
|
232
|
+
doc = getJson(BlankDocument)
|
233
|
+
|
234
|
+
result = subject.render_node('table', doc, linkText)
|
235
|
+
expect(result).to eq "<table>#{linkText}</table>"
|
236
|
+
end
|
237
|
+
|
238
|
+
it 'Should return thead string for thead node type' do
|
239
|
+
doc = getJson(BlankDocument)
|
240
|
+
|
241
|
+
result = subject.render_node('thead', doc, linkText)
|
242
|
+
expect(result).to eq "<thead>#{linkText}</thead>"
|
243
|
+
end
|
244
|
+
|
245
|
+
it 'Should return tfoot string for tfoot node type' do
|
246
|
+
doc = getJson(BlankDocument)
|
247
|
+
|
248
|
+
result = subject.render_node('tfoot', doc, linkText)
|
249
|
+
expect(result).to eq "<tfoot>#{linkText}</tfoot>"
|
250
|
+
end
|
251
|
+
|
252
|
+
it 'Should return tbody string fortbody node type' do
|
253
|
+
doc = getJson(BlankDocument)
|
254
|
+
|
255
|
+
result = subject.render_node('tbody', doc, linkText)
|
256
|
+
expect(result).to eq "<tbody>#{linkText}</tbody>"
|
257
|
+
end
|
258
|
+
|
259
|
+
it 'Should return table row string for table row node type' do
|
260
|
+
doc = getJson(BlankDocument)
|
261
|
+
|
262
|
+
result = subject.render_node('tr', doc, linkText)
|
263
|
+
expect(result).to eq "<tr>#{linkText}</tr>"
|
264
|
+
end
|
265
|
+
|
266
|
+
it 'Should return table head string for table head node type' do
|
267
|
+
doc = getJson(BlankDocument)
|
268
|
+
|
269
|
+
result = subject.render_node('th', doc, linkText)
|
270
|
+
expect(result).to eq "<th>#{linkText}</th>"
|
271
|
+
end
|
272
|
+
|
273
|
+
it 'Should return table data string for table data node type' do
|
274
|
+
doc = getJson(BlankDocument)
|
275
|
+
|
276
|
+
result = subject.render_node('td', doc, linkText)
|
277
|
+
expect(result).to eq "<td>#{linkText}</td>"
|
278
|
+
end
|
279
|
+
|
280
|
+
it 'Should return blockquote string for blockquote node type' do
|
281
|
+
doc = getJson(BlankDocument)
|
282
|
+
|
283
|
+
result = subject.render_node('blockquote', doc, linkText)
|
284
|
+
expect(result).to eq "<blockquote>#{linkText}</blockquote>"
|
285
|
+
end
|
286
|
+
|
287
|
+
it 'Should return code string for code node type' do
|
288
|
+
doc = getJson(BlankDocument)
|
289
|
+
|
290
|
+
result = subject.render_node('code', doc, linkText)
|
291
|
+
expect(result).to eq "<code>#{linkText}</code>"
|
292
|
+
end
|
293
|
+
|
294
|
+
it 'Should return blank string for reference node type' do
|
295
|
+
doc = getJson(BlankDocument)
|
296
|
+
|
297
|
+
result = subject.render_node('reference', doc, linkText)
|
298
|
+
expect(result).to eq ""
|
299
|
+
end
|
300
|
+
|
85
301
|
end
|
86
302
|
end
|
data/spec/lib/utils_spec.rb
CHANGED
@@ -59,6 +59,584 @@ RSpec.describe ContentstackUtils do
|
|
59
59
|
end
|
60
60
|
end
|
61
61
|
|
62
|
+
|
63
|
+
describe '#JsonToHtml Array' do
|
64
|
+
it 'Should return blank string for blank doc' do
|
65
|
+
doc = getJson(BlankDocument)
|
66
|
+
|
67
|
+
result = ContentstackUtils.json_to_html([doc], ContentstackUtils::Model::Options.new())
|
68
|
+
|
69
|
+
expect(result).to eq [""]
|
70
|
+
end
|
71
|
+
|
72
|
+
it 'Should return mark text string for PlainTextJson doc' do
|
73
|
+
doc = getJson(PlainTextJson)
|
74
|
+
|
75
|
+
result = ContentstackUtils.json_to_html([doc], ContentstackUtils::Model::Options.new())
|
76
|
+
|
77
|
+
expect(result).to eq [PlainTextHtml]
|
78
|
+
end
|
79
|
+
|
80
|
+
it 'Should return paragraph string for ParagraphJson doc' do
|
81
|
+
doc = getJson(ParagraphJson)
|
82
|
+
|
83
|
+
result = ContentstackUtils.json_to_html([doc], ContentstackUtils::Model::Options.new())
|
84
|
+
|
85
|
+
expect(result).to eq [ParagraphHtml]
|
86
|
+
end
|
87
|
+
|
88
|
+
it 'Should return H1 string for H1Json doc' do
|
89
|
+
doc = getJson(H1Json)
|
90
|
+
|
91
|
+
result = ContentstackUtils.json_to_html([doc], ContentstackUtils::Model::Options.new())
|
92
|
+
|
93
|
+
expect(result).to eq [H1Html]
|
94
|
+
end
|
95
|
+
|
96
|
+
it 'Should return H2 string for H2Json doc' do
|
97
|
+
doc = getJson(H2Json)
|
98
|
+
|
99
|
+
result = ContentstackUtils.json_to_html([doc], ContentstackUtils::Model::Options.new())
|
100
|
+
|
101
|
+
expect(result).to eq [H2Html]
|
102
|
+
end
|
103
|
+
|
104
|
+
it 'Should return H3 string for H3Json doc' do
|
105
|
+
doc = getJson(H3Json)
|
106
|
+
|
107
|
+
result = ContentstackUtils.json_to_html([doc], ContentstackUtils::Model::Options.new())
|
108
|
+
|
109
|
+
expect(result).to eq [H3Html]
|
110
|
+
end
|
111
|
+
|
112
|
+
it 'Should return H4 string for H4Json doc' do
|
113
|
+
doc = getJson(H4Json)
|
114
|
+
|
115
|
+
result = ContentstackUtils.json_to_html([doc], ContentstackUtils::Model::Options.new())
|
116
|
+
|
117
|
+
expect(result).to eq [H4Html]
|
118
|
+
end
|
119
|
+
|
120
|
+
it 'Should return H5 string for H5Json doc' do
|
121
|
+
doc = getJson(H5Json)
|
122
|
+
|
123
|
+
result = ContentstackUtils.json_to_html([doc], ContentstackUtils::Model::Options.new())
|
124
|
+
|
125
|
+
expect(result).to eq [H5Html]
|
126
|
+
end
|
127
|
+
|
128
|
+
it 'Should return H6 string for H6Json doc' do
|
129
|
+
doc = getJson(H6Json)
|
130
|
+
|
131
|
+
result = ContentstackUtils.json_to_html([doc], ContentstackUtils::Model::Options.new())
|
132
|
+
|
133
|
+
expect(result).to eq [H6Html]
|
134
|
+
end
|
135
|
+
|
136
|
+
it 'Should return Order List string for OrderListJson doc' do
|
137
|
+
doc = getJson(OrderListJson)
|
138
|
+
|
139
|
+
result = ContentstackUtils.json_to_html([doc], ContentstackUtils::Model::Options.new())
|
140
|
+
|
141
|
+
expect(result).to eq [OrderListHtml]
|
142
|
+
end
|
143
|
+
|
144
|
+
it 'Should return Unorder List string for UnorderListJson doc' do
|
145
|
+
doc = getJson(UnorderListJson)
|
146
|
+
|
147
|
+
result = ContentstackUtils.json_to_html([doc], ContentstackUtils::Model::Options.new())
|
148
|
+
|
149
|
+
expect(result).to eq [UnorderListHtml]
|
150
|
+
end
|
151
|
+
|
152
|
+
it 'Should return image string for ImgJson doc' do
|
153
|
+
doc = getJson(ImgJson)
|
154
|
+
|
155
|
+
result = ContentstackUtils.json_to_html([doc], ContentstackUtils::Model::Options.new())
|
156
|
+
|
157
|
+
expect(result).to eq [ImgHtml]
|
158
|
+
end
|
159
|
+
|
160
|
+
it 'Should return Blockquote string for BlockquoteJson doc' do
|
161
|
+
doc = getJson(BlockquoteJson)
|
162
|
+
|
163
|
+
result = ContentstackUtils.json_to_html([doc], ContentstackUtils::Model::Options.new())
|
164
|
+
|
165
|
+
expect(result).to eq [BlockquoteHtml]
|
166
|
+
end
|
167
|
+
|
168
|
+
it 'Should return Code string for CodeJson doc' do
|
169
|
+
doc = getJson(CodeJson)
|
170
|
+
|
171
|
+
result = ContentstackUtils.json_to_html([doc], ContentstackUtils::Model::Options.new())
|
172
|
+
|
173
|
+
expect(result).to eq [CodeHtml]
|
174
|
+
end
|
175
|
+
|
176
|
+
it 'Should return Table string for TableJson doc' do
|
177
|
+
doc = getJson(TableJson)
|
178
|
+
|
179
|
+
result = ContentstackUtils.json_to_html([doc], ContentstackUtils::Model::Options.new())
|
180
|
+
|
181
|
+
expect(result).to eq [TableHtml]
|
182
|
+
end
|
183
|
+
|
184
|
+
it 'Should return Link string for LinkInPJson doc' do
|
185
|
+
doc = getJson(LinkInPJson)
|
186
|
+
|
187
|
+
result = ContentstackUtils.json_to_html([doc], ContentstackUtils::Model::Options.new())
|
188
|
+
|
189
|
+
expect(result).to eq [LinkInPHtml]
|
190
|
+
end
|
191
|
+
|
192
|
+
it 'Should return Embed string for EmbedJson doc' do
|
193
|
+
doc = getJson(EmbedJson)
|
194
|
+
|
195
|
+
result = ContentstackUtils.json_to_html([doc], ContentstackUtils::Model::Options.new())
|
196
|
+
|
197
|
+
expect(result).to eq [EmbedHtml]
|
198
|
+
end
|
199
|
+
|
200
|
+
it 'Should return horizontal line string for horizontal line doc' do
|
201
|
+
doc = getJson(HRJson)
|
202
|
+
|
203
|
+
result = ContentstackUtils.json_to_html([doc], ContentstackUtils::Model::Options.new())
|
204
|
+
|
205
|
+
expect(result).to eq ['<hr />']
|
206
|
+
end
|
207
|
+
end
|
208
|
+
|
209
|
+
describe '#JsonToHtml' do
|
210
|
+
it 'Should return blank string for blank doc' do
|
211
|
+
doc = getJson(BlankDocument)
|
212
|
+
|
213
|
+
result = ContentstackUtils.json_to_html(doc, ContentstackUtils::Model::Options.new())
|
214
|
+
|
215
|
+
expect(result).to eq ""
|
216
|
+
end
|
217
|
+
|
218
|
+
it 'Should return mark text string for PlainTextJson doc' do
|
219
|
+
doc = getJson(PlainTextJson)
|
220
|
+
|
221
|
+
result = ContentstackUtils.json_to_html(doc, ContentstackUtils::Model::Options.new())
|
222
|
+
|
223
|
+
expect(result).to eq PlainTextHtml
|
224
|
+
end
|
225
|
+
|
226
|
+
it 'Should return paragraph string for ParagraphJson doc' do
|
227
|
+
doc = getJson(ParagraphJson)
|
228
|
+
|
229
|
+
result = ContentstackUtils.json_to_html(doc, ContentstackUtils::Model::Options.new())
|
230
|
+
|
231
|
+
expect(result).to eq ParagraphHtml
|
232
|
+
end
|
233
|
+
|
234
|
+
it 'Should return H1 string for H1Json doc' do
|
235
|
+
doc = getJson(H1Json)
|
236
|
+
|
237
|
+
result = ContentstackUtils.json_to_html(doc, ContentstackUtils::Model::Options.new())
|
238
|
+
|
239
|
+
expect(result).to eq H1Html
|
240
|
+
end
|
241
|
+
|
242
|
+
it 'Should return H2 string for H2Json doc' do
|
243
|
+
doc = getJson(H2Json)
|
244
|
+
|
245
|
+
result = ContentstackUtils.json_to_html(doc, ContentstackUtils::Model::Options.new())
|
246
|
+
|
247
|
+
expect(result).to eq H2Html
|
248
|
+
end
|
249
|
+
|
250
|
+
it 'Should return H3 string for H3Json doc' do
|
251
|
+
doc = getJson(H3Json)
|
252
|
+
|
253
|
+
result = ContentstackUtils.json_to_html(doc, ContentstackUtils::Model::Options.new())
|
254
|
+
|
255
|
+
expect(result).to eq H3Html
|
256
|
+
end
|
257
|
+
|
258
|
+
it 'Should return H4 string for H4Json doc' do
|
259
|
+
doc = getJson(H4Json)
|
260
|
+
|
261
|
+
result = ContentstackUtils.json_to_html(doc, ContentstackUtils::Model::Options.new())
|
262
|
+
|
263
|
+
expect(result).to eq H4Html
|
264
|
+
end
|
265
|
+
|
266
|
+
it 'Should return H5 string for H5Json doc' do
|
267
|
+
doc = getJson(H5Json)
|
268
|
+
|
269
|
+
result = ContentstackUtils.json_to_html(doc, ContentstackUtils::Model::Options.new())
|
270
|
+
|
271
|
+
expect(result).to eq H5Html
|
272
|
+
end
|
273
|
+
|
274
|
+
it 'Should return H6 string for H6Json doc' do
|
275
|
+
doc = getJson(H6Json)
|
276
|
+
|
277
|
+
result = ContentstackUtils.json_to_html(doc, ContentstackUtils::Model::Options.new())
|
278
|
+
|
279
|
+
expect(result).to eq H6Html
|
280
|
+
end
|
281
|
+
|
282
|
+
it 'Should return Order List string for OrderListJson doc' do
|
283
|
+
doc = getJson(OrderListJson)
|
284
|
+
|
285
|
+
result = ContentstackUtils.json_to_html(doc, ContentstackUtils::Model::Options.new())
|
286
|
+
|
287
|
+
expect(result).to eq OrderListHtml
|
288
|
+
end
|
289
|
+
|
290
|
+
it 'Should return Unorder List string for UnorderListJson doc' do
|
291
|
+
doc = getJson(UnorderListJson)
|
292
|
+
|
293
|
+
result = ContentstackUtils.json_to_html(doc, ContentstackUtils::Model::Options.new())
|
294
|
+
|
295
|
+
expect(result).to eq UnorderListHtml
|
296
|
+
end
|
297
|
+
|
298
|
+
it 'Should return image string for ImgJson doc' do
|
299
|
+
doc = getJson(ImgJson)
|
300
|
+
|
301
|
+
result = ContentstackUtils.json_to_html(doc, ContentstackUtils::Model::Options.new())
|
302
|
+
|
303
|
+
expect(result).to eq ImgHtml
|
304
|
+
end
|
305
|
+
|
306
|
+
it 'Should return Blockquote string for BlockquoteJson doc' do
|
307
|
+
doc = getJson(BlockquoteJson)
|
308
|
+
|
309
|
+
result = ContentstackUtils.json_to_html(doc, ContentstackUtils::Model::Options.new())
|
310
|
+
|
311
|
+
expect(result).to eq BlockquoteHtml
|
312
|
+
end
|
313
|
+
|
314
|
+
it 'Should return Code string for CodeJson doc' do
|
315
|
+
doc = getJson(CodeJson)
|
316
|
+
|
317
|
+
result = ContentstackUtils.json_to_html(doc, ContentstackUtils::Model::Options.new())
|
318
|
+
|
319
|
+
expect(result).to eq CodeHtml
|
320
|
+
end
|
321
|
+
|
322
|
+
it 'Should return Table string for TableJson doc' do
|
323
|
+
doc = getJson(TableJson)
|
324
|
+
|
325
|
+
result = ContentstackUtils.json_to_html(doc, ContentstackUtils::Model::Options.new())
|
326
|
+
|
327
|
+
expect(result).to eq TableHtml
|
328
|
+
end
|
329
|
+
|
330
|
+
it 'Should return Link string for LinkInPJson doc' do
|
331
|
+
doc = getJson(LinkInPJson)
|
332
|
+
|
333
|
+
result = ContentstackUtils.json_to_html(doc, ContentstackUtils::Model::Options.new())
|
334
|
+
|
335
|
+
expect(result).to eq LinkInPHtml
|
336
|
+
end
|
337
|
+
|
338
|
+
it 'Should return Embed string for EmbedJson doc' do
|
339
|
+
doc = getJson(EmbedJson)
|
340
|
+
|
341
|
+
result = ContentstackUtils.json_to_html(doc, ContentstackUtils::Model::Options.new())
|
342
|
+
|
343
|
+
expect(result).to eq EmbedHtml
|
344
|
+
end
|
345
|
+
|
346
|
+
it 'Should return horizontal line string for horizontal line doc' do
|
347
|
+
doc = getJson(HRJson)
|
348
|
+
|
349
|
+
result = ContentstackUtils.json_to_html(doc, ContentstackUtils::Model::Options.new())
|
350
|
+
|
351
|
+
expect(result).to eq '<hr />'
|
352
|
+
end
|
353
|
+
|
354
|
+
it 'Should return horizontal line string for horizontal line doc' do
|
355
|
+
doc = getJson(H1NonChildJson)
|
356
|
+
|
357
|
+
result = ContentstackUtils.json_to_html(doc, ContentstackUtils::Model::Options.new())
|
358
|
+
|
359
|
+
expect(result).to eq '<h1></h1>'
|
360
|
+
end
|
361
|
+
end
|
362
|
+
|
363
|
+
describe '#JsonToHtml reference' do
|
364
|
+
it 'Should return blank string for non entry option' do
|
365
|
+
doc = getJson(AssetReferenceJson)
|
366
|
+
|
367
|
+
result = ContentstackUtils.json_to_html(doc, ContentstackUtils::Model::Options.new())
|
368
|
+
|
369
|
+
expect(result).to eq ''
|
370
|
+
end
|
371
|
+
|
372
|
+
it 'Should return asset embedded items' do
|
373
|
+
doc = getJson(AssetReferenceJson)
|
374
|
+
|
375
|
+
result = ContentstackUtils.json_to_html(doc, ContentstackUtils::Model::Options.new(JSON_EMBEDDED_ITEMS_ENTRY))
|
376
|
+
|
377
|
+
expect(result).to eq AssetReferenceHtml
|
378
|
+
end
|
379
|
+
|
380
|
+
it 'Should return entry block embedded items' do
|
381
|
+
doc = getJson(EntryReferenceBlockJson)
|
382
|
+
|
383
|
+
result = ContentstackUtils.json_to_html(doc, ContentstackUtils::Model::Options.new(JSON_EMBEDDED_ITEMS_ENTRY))
|
384
|
+
|
385
|
+
expect(result).to eq EntryReferenceBlockHtml
|
386
|
+
end
|
387
|
+
|
388
|
+
it 'Should return entry link embedded items' do
|
389
|
+
doc = getJson(EntryReferenceLinkJson)
|
390
|
+
|
391
|
+
result = ContentstackUtils.json_to_html(doc, ContentstackUtils::Model::Options.new(JSON_EMBEDDED_ITEMS_ENTRY))
|
392
|
+
|
393
|
+
expect(result).to eq EntryReferenceLinkHtml
|
394
|
+
end
|
395
|
+
|
396
|
+
it 'Should return entry inline embedded items' do
|
397
|
+
doc = getJson(EntryReferenceInlineJson)
|
398
|
+
|
399
|
+
result = ContentstackUtils.json_to_html(doc, ContentstackUtils::Model::Options.new(JSON_EMBEDDED_ITEMS_ENTRY))
|
400
|
+
|
401
|
+
expect(result).to eq EntryReferenceInlineHtml
|
402
|
+
end
|
403
|
+
|
404
|
+
|
405
|
+
end
|
406
|
+
describe 'GQL #JsonToHtml' do
|
407
|
+
it 'Should return blank string for blank doc' do
|
408
|
+
entry = getGQLJSONRTE(BlankDocument)
|
409
|
+
|
410
|
+
result = ContentstackUtils::GQL.json_to_html(entry['single_rte'], ContentstackUtils::Model::Options.new())
|
411
|
+
arrayResult = ContentstackUtils::GQL.json_to_html(entry['multiple_rte'], ContentstackUtils::Model::Options.new())
|
412
|
+
|
413
|
+
expect(result).to eq ""
|
414
|
+
expect(arrayResult).to eq [""]
|
415
|
+
end
|
416
|
+
|
417
|
+
it 'Should return mark text string for PlainTextJson doc' do
|
418
|
+
entry = getGQLJSONRTE(PlainTextJson)
|
419
|
+
|
420
|
+
result = ContentstackUtils::GQL.json_to_html(entry['single_rte'], ContentstackUtils::Model::Options.new())
|
421
|
+
arrayResult = ContentstackUtils::GQL.json_to_html(entry['multiple_rte'], ContentstackUtils::Model::Options.new())
|
422
|
+
|
423
|
+
expect(result).to eq PlainTextHtml
|
424
|
+
expect(arrayResult).to eq [PlainTextHtml]
|
425
|
+
end
|
426
|
+
|
427
|
+
it 'Should return paragraph string for ParagraphJson doc' do
|
428
|
+
entry = getGQLJSONRTE(ParagraphJson)
|
429
|
+
|
430
|
+
result = ContentstackUtils::GQL.json_to_html(entry['single_rte'], ContentstackUtils::Model::Options.new())
|
431
|
+
arrayResult = ContentstackUtils::GQL.json_to_html(entry['multiple_rte'], ContentstackUtils::Model::Options.new())
|
432
|
+
|
433
|
+
expect(result).to eq ParagraphHtml
|
434
|
+
expect(arrayResult).to eq [ParagraphHtml]
|
435
|
+
end
|
436
|
+
|
437
|
+
it 'Should return H1 string for H1Json doc' do
|
438
|
+
entry = getGQLJSONRTE(H1Json)
|
439
|
+
|
440
|
+
result = ContentstackUtils::GQL.json_to_html(entry['single_rte'], ContentstackUtils::Model::Options.new())
|
441
|
+
arrayResult = ContentstackUtils::GQL.json_to_html(entry['multiple_rte'], ContentstackUtils::Model::Options.new())
|
442
|
+
|
443
|
+
expect(result).to eq H1Html
|
444
|
+
expect(arrayResult).to eq [H1Html]
|
445
|
+
end
|
446
|
+
|
447
|
+
it 'Should return H2 string for H1Json doc' do
|
448
|
+
entry = getGQLJSONRTE(H2Json)
|
449
|
+
|
450
|
+
result = ContentstackUtils::GQL.json_to_html(entry['single_rte'], ContentstackUtils::Model::Options.new())
|
451
|
+
arrayResult = ContentstackUtils::GQL.json_to_html(entry['multiple_rte'], ContentstackUtils::Model::Options.new())
|
452
|
+
|
453
|
+
expect(result).to eq H2Html
|
454
|
+
expect(arrayResult).to eq [H2Html]
|
455
|
+
end
|
456
|
+
|
457
|
+
it 'Should return H3 string for H1Json doc' do
|
458
|
+
entry = getGQLJSONRTE(H3Json)
|
459
|
+
|
460
|
+
result = ContentstackUtils::GQL.json_to_html(entry['single_rte'], ContentstackUtils::Model::Options.new())
|
461
|
+
arrayResult = ContentstackUtils::GQL.json_to_html(entry['multiple_rte'], ContentstackUtils::Model::Options.new())
|
462
|
+
|
463
|
+
expect(result).to eq H3Html
|
464
|
+
expect(arrayResult).to eq [H3Html]
|
465
|
+
end
|
466
|
+
|
467
|
+
it 'Should return H4 string for H1Json doc' do
|
468
|
+
entry = getGQLJSONRTE(H4Json)
|
469
|
+
|
470
|
+
result = ContentstackUtils::GQL.json_to_html(entry['single_rte'], ContentstackUtils::Model::Options.new())
|
471
|
+
arrayResult = ContentstackUtils::GQL.json_to_html(entry['multiple_rte'], ContentstackUtils::Model::Options.new())
|
472
|
+
|
473
|
+
expect(result).to eq H4Html
|
474
|
+
expect(arrayResult).to eq [H4Html]
|
475
|
+
end
|
476
|
+
|
477
|
+
it 'Should return H5 string for H1Json doc' do
|
478
|
+
entry = getGQLJSONRTE(H5Json)
|
479
|
+
|
480
|
+
result = ContentstackUtils::GQL.json_to_html(entry['single_rte'], ContentstackUtils::Model::Options.new())
|
481
|
+
arrayResult = ContentstackUtils::GQL.json_to_html(entry['multiple_rte'], ContentstackUtils::Model::Options.new())
|
482
|
+
|
483
|
+
expect(result).to eq H5Html
|
484
|
+
expect(arrayResult).to eq [H5Html]
|
485
|
+
end
|
486
|
+
|
487
|
+
it 'Should return H6 string for H1Json doc' do
|
488
|
+
entry = getGQLJSONRTE(H6Json)
|
489
|
+
|
490
|
+
result = ContentstackUtils::GQL.json_to_html(entry['single_rte'], ContentstackUtils::Model::Options.new())
|
491
|
+
arrayResult = ContentstackUtils::GQL.json_to_html(entry['multiple_rte'], ContentstackUtils::Model::Options.new())
|
492
|
+
|
493
|
+
expect(result).to eq H6Html
|
494
|
+
expect(arrayResult).to eq [H6Html]
|
495
|
+
end
|
496
|
+
|
497
|
+
it 'Should return Order List string for OrderListJson doc' do
|
498
|
+
entry = getGQLJSONRTE(OrderListJson)
|
499
|
+
|
500
|
+
result = ContentstackUtils::GQL.json_to_html(entry['single_rte'], ContentstackUtils::Model::Options.new())
|
501
|
+
arrayResult = ContentstackUtils::GQL.json_to_html(entry['multiple_rte'], ContentstackUtils::Model::Options.new())
|
502
|
+
|
503
|
+
expect(result).to eq OrderListHtml
|
504
|
+
expect(arrayResult).to eq [OrderListHtml]
|
505
|
+
end
|
506
|
+
|
507
|
+
it 'Should return Unorder List string for UnorderListJson doc' do
|
508
|
+
entry = getGQLJSONRTE(UnorderListJson)
|
509
|
+
|
510
|
+
result = ContentstackUtils::GQL.json_to_html(entry['single_rte'], ContentstackUtils::Model::Options.new())
|
511
|
+
arrayResult = ContentstackUtils::GQL.json_to_html(entry['multiple_rte'], ContentstackUtils::Model::Options.new())
|
512
|
+
|
513
|
+
expect(result).to eq UnorderListHtml
|
514
|
+
expect(arrayResult).to eq [UnorderListHtml]
|
515
|
+
end
|
516
|
+
|
517
|
+
it 'Should return image string for ImgJson doc' do
|
518
|
+
entry = getGQLJSONRTE(ImgJson)
|
519
|
+
|
520
|
+
result = ContentstackUtils::GQL.json_to_html(entry['single_rte'], ContentstackUtils::Model::Options.new())
|
521
|
+
arrayResult = ContentstackUtils::GQL.json_to_html(entry['multiple_rte'], ContentstackUtils::Model::Options.new())
|
522
|
+
|
523
|
+
expect(result).to eq ImgHtml
|
524
|
+
expect(arrayResult).to eq [ImgHtml]
|
525
|
+
end
|
526
|
+
|
527
|
+
it 'Should return Blockquote string for BlockquoteJson doc' do
|
528
|
+
entry = getGQLJSONRTE(BlockquoteJson)
|
529
|
+
|
530
|
+
result = ContentstackUtils::GQL.json_to_html(entry['single_rte'], ContentstackUtils::Model::Options.new())
|
531
|
+
arrayResult = ContentstackUtils::GQL.json_to_html(entry['multiple_rte'], ContentstackUtils::Model::Options.new())
|
532
|
+
|
533
|
+
expect(result).to eq BlockquoteHtml
|
534
|
+
expect(arrayResult).to eq [BlockquoteHtml]
|
535
|
+
end
|
536
|
+
|
537
|
+
it 'Should return Code string for CodeJson doc' do
|
538
|
+
entry = getGQLJSONRTE(CodeJson)
|
539
|
+
|
540
|
+
result = ContentstackUtils::GQL.json_to_html(entry['single_rte'], ContentstackUtils::Model::Options.new())
|
541
|
+
arrayResult = ContentstackUtils::GQL.json_to_html(entry['multiple_rte'], ContentstackUtils::Model::Options.new())
|
542
|
+
|
543
|
+
expect(result).to eq CodeHtml
|
544
|
+
expect(arrayResult).to eq [CodeHtml]
|
545
|
+
end
|
546
|
+
|
547
|
+
it 'Should return Table string for TableJson doc' do
|
548
|
+
entry = getGQLJSONRTE(TableJson)
|
549
|
+
|
550
|
+
result = ContentstackUtils::GQL.json_to_html(entry['single_rte'], ContentstackUtils::Model::Options.new())
|
551
|
+
arrayResult = ContentstackUtils::GQL.json_to_html(entry['multiple_rte'], ContentstackUtils::Model::Options.new())
|
552
|
+
|
553
|
+
expect(result).to eq TableHtml
|
554
|
+
expect(arrayResult).to eq [TableHtml]
|
555
|
+
end
|
556
|
+
|
557
|
+
it 'Should return Link string for LinkInPJson doc' do
|
558
|
+
entry = getGQLJSONRTE(LinkInPJson)
|
559
|
+
|
560
|
+
result = ContentstackUtils::GQL.json_to_html(entry['single_rte'], ContentstackUtils::Model::Options.new())
|
561
|
+
arrayResult = ContentstackUtils::GQL.json_to_html(entry['multiple_rte'], ContentstackUtils::Model::Options.new())
|
562
|
+
|
563
|
+
expect(result).to eq LinkInPHtml
|
564
|
+
expect(arrayResult).to eq [LinkInPHtml]
|
565
|
+
end
|
566
|
+
|
567
|
+
it 'Should return Embed string for EmbedJson doc' do
|
568
|
+
entry = getGQLJSONRTE(EmbedJson)
|
569
|
+
|
570
|
+
result = ContentstackUtils::GQL.json_to_html(entry['single_rte'], ContentstackUtils::Model::Options.new())
|
571
|
+
arrayResult = ContentstackUtils::GQL.json_to_html(entry['multiple_rte'], ContentstackUtils::Model::Options.new())
|
572
|
+
|
573
|
+
expect(result).to eq EmbedHtml
|
574
|
+
expect(arrayResult).to eq [EmbedHtml]
|
575
|
+
end
|
576
|
+
|
577
|
+
it 'Should return horizontal line string for horizontal line doc' do
|
578
|
+
entry = getGQLJSONRTE(HRJson)
|
579
|
+
|
580
|
+
result = ContentstackUtils::GQL.json_to_html(entry['single_rte'], ContentstackUtils::Model::Options.new())
|
581
|
+
arrayResult = ContentstackUtils::GQL.json_to_html(entry['multiple_rte'], ContentstackUtils::Model::Options.new())
|
582
|
+
|
583
|
+
expect(result).to eq '<hr />'
|
584
|
+
expect(arrayResult).to eq ['<hr />']
|
585
|
+
end
|
586
|
+
end
|
587
|
+
|
588
|
+
describe 'GQL #JsonToHtml reference' do
|
589
|
+
it 'Should return blank string for non entry option' do
|
590
|
+
entry = getGQLJSONRTE(AssetReferenceJson)
|
591
|
+
|
592
|
+
result = ContentstackUtils::GQL.json_to_html(entry['single_rte'], ContentstackUtils::Model::Options.new())
|
593
|
+
arrayResult = ContentstackUtils::GQL.json_to_html(entry['multiple_rte'], ContentstackUtils::Model::Options.new())
|
594
|
+
|
595
|
+
expect(result).to eq ''
|
596
|
+
expect(arrayResult).to eq ['']
|
597
|
+
end
|
598
|
+
|
599
|
+
it 'Should return asset embedded items' do
|
600
|
+
entry = getGQLJSONRTE(AssetReferenceJson, EmbedEdges)
|
601
|
+
|
602
|
+
result = ContentstackUtils::GQL.json_to_html(entry['single_rte'], ContentstackUtils::Model::Options.new())
|
603
|
+
arrayResult = ContentstackUtils::GQL.json_to_html(entry['multiple_rte'], ContentstackUtils::Model::Options.new())
|
604
|
+
|
605
|
+
expect(result).to eq AssetReferenceHtml
|
606
|
+
expect(arrayResult).to eq [AssetReferenceHtml]
|
607
|
+
end
|
608
|
+
|
609
|
+
it 'Should return entry block embedded items' do
|
610
|
+
entry = getGQLJSONRTE(EntryReferenceBlockJson, EmbedEdges)
|
611
|
+
|
612
|
+
result = ContentstackUtils::GQL.json_to_html(entry['single_rte'], ContentstackUtils::Model::Options.new())
|
613
|
+
arrayResult = ContentstackUtils::GQL.json_to_html(entry['multiple_rte'], ContentstackUtils::Model::Options.new())
|
614
|
+
|
615
|
+
expect(result).to eq EntryReferenceBlockHtml
|
616
|
+
expect(arrayResult).to eq [EntryReferenceBlockHtml]
|
617
|
+
end
|
618
|
+
|
619
|
+
it 'Should return entry link embedded items' do
|
620
|
+
entry = getGQLJSONRTE(EntryReferenceLinkJson, EmbedEdges)
|
621
|
+
|
622
|
+
result = ContentstackUtils::GQL.json_to_html(entry['single_rte'], ContentstackUtils::Model::Options.new())
|
623
|
+
arrayResult = ContentstackUtils::GQL.json_to_html(entry['multiple_rte'], ContentstackUtils::Model::Options.new())
|
624
|
+
|
625
|
+
expect(result).to eq EntryReferenceLinkHtml
|
626
|
+
expect(arrayResult).to eq [EntryReferenceLinkHtml]
|
627
|
+
end
|
628
|
+
|
629
|
+
it 'Should return entry inline embedded items' do
|
630
|
+
entry = getGQLJSONRTE(EntryReferenceInlineJson, EmbedEdges)
|
631
|
+
|
632
|
+
result = ContentstackUtils::GQL.json_to_html(entry['single_rte'], ContentstackUtils::Model::Options.new())
|
633
|
+
arrayResult = ContentstackUtils::GQL.json_to_html(entry['multiple_rte'], ContentstackUtils::Model::Options.new())
|
634
|
+
|
635
|
+
expect(result).to eq EntryReferenceInlineHtml
|
636
|
+
expect(arrayResult).to eq [EntryReferenceInlineHtml]
|
637
|
+
end
|
638
|
+
end
|
639
|
+
|
62
640
|
def makeRenderFunction(content, option = ContentstackUtils::Model::Options.new(ENTRY_EMBEDDED_ASSET))
|
63
641
|
ContentstackUtils.render_content(content, option)
|
64
642
|
end
|