aspose_slides_cloud 22.8.0 → 22.10.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.
Files changed (51) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +13 -13
  3. data/README.md +17 -1
  4. data/TestData/calibri.ttf +0 -0
  5. data/TestData/test.pptx +0 -0
  6. data/docker-entrypoint.sh +1 -0
  7. data/lib/aspose_slides_cloud/api/slides_api.rb +5413 -8668
  8. data/lib/aspose_slides_cloud/api_client.rb +2 -2
  9. data/lib/aspose_slides_cloud/models/bubble_chart_data_point.rb +5 -1
  10. data/lib/aspose_slides_cloud/models/data_point.rb +42 -2
  11. data/lib/aspose_slides_cloud/models/effect.rb +22 -2
  12. data/lib/aspose_slides_cloud/models/export_options.rb +13 -1
  13. data/lib/aspose_slides_cloud/models/font_subst_rule.rb +231 -0
  14. data/lib/aspose_slides_cloud/models/gif_export_options.rb +2 -1
  15. data/lib/aspose_slides_cloud/models/html5_export_options.rb +2 -1
  16. data/lib/aspose_slides_cloud/models/html_export_options.rb +2 -1
  17. data/lib/aspose_slides_cloud/models/image_export_options.rb +2 -1
  18. data/lib/aspose_slides_cloud/models/image_export_options_base.rb +2 -1
  19. data/lib/aspose_slides_cloud/models/one_value_chart_data_point.rb +5 -1
  20. data/lib/aspose_slides_cloud/models/pdf_export_options.rb +2 -1
  21. data/lib/aspose_slides_cloud/models/pptx_export_options.rb +2 -1
  22. data/lib/aspose_slides_cloud/models/scatter_chart_data_point.rb +5 -1
  23. data/lib/aspose_slides_cloud/models/slide_show_properties.rb +325 -0
  24. data/lib/aspose_slides_cloud/models/svg_export_options.rb +2 -1
  25. data/lib/aspose_slides_cloud/models/swf_export_options.rb +2 -1
  26. data/lib/aspose_slides_cloud/models/tiff_export_options.rb +2 -1
  27. data/lib/aspose_slides_cloud/models/video_export_options.rb +2 -1
  28. data/lib/aspose_slides_cloud/models/xaml_export_options.rb +2 -1
  29. data/lib/aspose_slides_cloud/models/xps_export_options.rb +2 -1
  30. data/lib/aspose_slides_cloud/type_registry.rb +3 -0
  31. data/lib/aspose_slides_cloud/version.rb +1 -1
  32. data/lib/aspose_slides_cloud.rb +2 -0
  33. data/spec/api/slides_api_spec.rb +23234 -32650
  34. data/spec/spec_utils.rb +2 -0
  35. data/spec/use_cases/chart_spec.rb +209 -0
  36. data/spec/use_cases/comment_spec.rb +159 -0
  37. data/spec/use_cases/convert_spec.rb +45 -0
  38. data/spec/use_cases/font_spec.rb +143 -0
  39. data/spec/use_cases/layout_slide_spec.rb +18 -0
  40. data/spec/use_cases/master_slide_spec.rb +16 -0
  41. data/spec/use_cases/merge_spec.rb +21 -0
  42. data/spec/use_cases/notes_slide_spec.rb +34 -0
  43. data/spec/use_cases/paragraph_spec.rb +330 -0
  44. data/spec/use_cases/portion_spec.rb +324 -0
  45. data/spec/use_cases/property_spec.rb +59 -0
  46. data/spec/use_cases/shape_spec.rb +214 -11
  47. data/spec/use_cases/slide_spec.rb +197 -0
  48. data/spec/use_cases/text_format_spec.rb +74 -0
  49. data/spec/use_cases/text_spec.rb +39 -0
  50. data/testRules.json +50 -1
  51. metadata +17 -2
@@ -0,0 +1,324 @@
1
+ =begin
2
+ Copyright (c) 2019 Aspose Pty Ltd
3
+
4
+ Permission is hereby granted, free of charge, to any person obtaining a copy
5
+ of this software and associated documentation files (the "Software"), to deal
6
+ in the Software without restriction, including without limitation the rights
7
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
+ copies of the Software, and to permit persons to whom the Software is
9
+ furnished to do so, subject to the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be included in all
12
+ copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20
+ SOFTWARE.
21
+ =end
22
+
23
+ require 'spec_helper'
24
+
25
+ describe 'UseCases' do
26
+ describe 'Portion' do
27
+ it "get portions" do
28
+ folder_name = "TempSlidesSDK"
29
+ file_name = "test.pptx"
30
+ password = "password"
31
+ slide_index = 6
32
+ shape_index = 2
33
+ paragraph_index = 1
34
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
35
+ response = AsposeSlidesCloud::SpecUtils.api.get_portions(file_name, slide_index, shape_index, paragraph_index, password, folder_name)
36
+ expect(response.items.length).to eq(2)
37
+ end
38
+
39
+ it "get subshape portions" do
40
+ folder_name = "TempSlidesSDK"
41
+ file_name = "test.pptx"
42
+ password = "password"
43
+ slide_index = 6
44
+ shape_index = 3
45
+ sub_shape = "1"
46
+ paragraph_index = 1
47
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
48
+ response = AsposeSlidesCloud::SpecUtils.api.get_portions(file_name, slide_index, shape_index, paragraph_index, password, folder_name, "", sub_shape)
49
+ expect(response.items.length).to eq(2)
50
+ end
51
+
52
+ it "get portion" do
53
+ folder_name = "TempSlidesSDK"
54
+ file_name = "test.pptx"
55
+ password = "password"
56
+ slide_index = 6
57
+ shape_index = 2
58
+ paragraph_index = 1
59
+ portion_index = 1
60
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
61
+ response = AsposeSlidesCloud::SpecUtils.api.get_portion(file_name, slide_index, shape_index, paragraph_index, portion_index,
62
+ password, folder_name)
63
+ expect(response.text.include? "portion 1").to eq(true)
64
+ end
65
+
66
+ it "get subshape portion" do
67
+ folder_name = "TempSlidesSDK"
68
+ file_name = "test.pptx"
69
+ password = "password"
70
+ slide_index = 6
71
+ shape_index = 3
72
+ sub_shape = "1"
73
+ paragraph_index = 1
74
+ portion_index = 1
75
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
76
+ response = AsposeSlidesCloud::SpecUtils.api.get_portion(file_name, slide_index, shape_index,
77
+ paragraph_index, portion_index, password, folder_name, "", sub_shape)
78
+ expect(response.text.include? "portion 1").to eq(true)
79
+ end
80
+
81
+ it "create portion" do
82
+ folder_name = "TempSlidesSDK"
83
+ file_name = "test.pptx"
84
+ password = "password"
85
+ slide_index = 6
86
+ shape_index = 2
87
+ paragraph_index = 1
88
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
89
+
90
+ dto = AsposeSlidesCloud::Portion.new
91
+ dto.text = "new portion text"
92
+ dto.font_bold = "True"
93
+ dto.font_height = 20
94
+ dto.latin_font = "Arial"
95
+ dto.fill_format = AsposeSlidesCloud::SolidFill.new
96
+ dto.fill_format.color = "#FFF5FF8A"
97
+
98
+ response = AsposeSlidesCloud::SpecUtils.api.create_portion(file_name, slide_index, shape_index, paragraph_index, dto, nil,
99
+ password, folder_name)
100
+ expect(response.text).to eq(dto.text)
101
+ expect(response.font_bold).to eq(dto.font_bold)
102
+ expect(response.font_height).to eq(dto.font_height)
103
+ expect(response.latin_font).to eq(dto.latin_font)
104
+ expect(response.fill_format.type).to eq("Solid")
105
+ end
106
+
107
+ it "create subshape portion" do
108
+ folder_name = "TempSlidesSDK"
109
+ file_name = "test.pptx"
110
+ password = "password"
111
+ slide_index = 6
112
+ shape_index = 3
113
+ sub_shape = "1"
114
+ paragraph_index = 1
115
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
116
+
117
+ dto = AsposeSlidesCloud::Portion.new
118
+ dto.text = "new portion text"
119
+ dto.font_bold = "True"
120
+ dto.font_height = 20
121
+ dto.latin_font = "Arial"
122
+ dto.fill_format = AsposeSlidesCloud::SolidFill.new
123
+ dto.fill_format.color = "#FFF5FF8A"
124
+
125
+ response = AsposeSlidesCloud::SpecUtils.api.create_portion(file_name, slide_index, shape_index,
126
+ paragraph_index, dto, nil, password, folder_name, "", sub_shape)
127
+ expect(response.text).to eq(dto.text)
128
+ expect(response.font_bold).to eq(dto.font_bold)
129
+ expect(response.font_height).to eq(dto.font_height)
130
+ expect(response.latin_font).to eq(dto.latin_font)
131
+ expect(response.fill_format.type).to eq("Solid")
132
+ end
133
+
134
+ it "update portion" do
135
+ folder_name = "TempSlidesSDK"
136
+ file_name = "test.pptx"
137
+ password = "password"
138
+ slide_index = 6
139
+ shape_index = 2
140
+ paragraph_index = 1
141
+ portion_index = 1
142
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
143
+
144
+ dto = AsposeSlidesCloud::Portion.new
145
+ dto.text = "new portion text"
146
+ dto.font_bold = "True"
147
+ dto.font_height = 20
148
+ dto.latin_font = "Arial"
149
+ dto.fill_format = AsposeSlidesCloud::SolidFill.new
150
+ dto.fill_format.color = "#FFF5FF8A"
151
+
152
+ response = AsposeSlidesCloud::SpecUtils.api.update_portion(file_name, slide_index, shape_index, paragraph_index,
153
+ portion_index, dto, password, folder_name)
154
+ expect(response.text).to eq(dto.text)
155
+ expect(response.font_bold).to eq(dto.font_bold)
156
+ expect(response.font_height).to eq(dto.font_height)
157
+ expect(response.latin_font).to eq(dto.latin_font)
158
+ expect(response.fill_format.type).to eq("Solid")
159
+ end
160
+
161
+ it "update subshape portion" do
162
+ folder_name = "TempSlidesSDK"
163
+ file_name = "test.pptx"
164
+ password = "password"
165
+ slide_index = 6
166
+ shape_index = 3
167
+ sub_shape = "1"
168
+ paragraph_index = 1
169
+ portion_index = 1
170
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
171
+
172
+ dto = AsposeSlidesCloud::Portion.new
173
+ dto.text = "new portion text"
174
+ dto.font_bold = "True"
175
+ dto.font_height = 20
176
+ dto.latin_font = "Arial"
177
+ dto.fill_format = AsposeSlidesCloud::SolidFill.new
178
+ dto.fill_format.color = "#FFF5FF8A"
179
+
180
+ response = AsposeSlidesCloud::SpecUtils.api.update_portion(file_name, slide_index, shape_index,
181
+ paragraph_index, portion_index, dto, password, folder_name, "", sub_shape)
182
+ expect(response.text).to eq(dto.text)
183
+ expect(response.font_bold).to eq(dto.font_bold)
184
+ expect(response.font_height).to eq(dto.font_height)
185
+ expect(response.latin_font).to eq(dto.latin_font)
186
+ expect(response.fill_format.type).to eq("Solid")
187
+ end
188
+
189
+ it "delete portions" do
190
+ folder_name = "TempSlidesSDK"
191
+ file_name = "test.pptx"
192
+ password = "password"
193
+ slide_index = 6
194
+ shape_index = 2
195
+ paragraph_index = 1
196
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
197
+
198
+ response = AsposeSlidesCloud::SpecUtils.api.delete_portions(file_name, slide_index, shape_index, paragraph_index,
199
+ nil, password, folder_name)
200
+ expect(response.items.length).to eq(0)
201
+ end
202
+
203
+ it "delete portions indexes" do
204
+ folder_name = "TempSlidesSDK"
205
+ file_name = "test.pptx"
206
+ password = "password"
207
+ slide_index = 6
208
+ shape_index = 2
209
+ paragraph_index = 1
210
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
211
+
212
+ response = AsposeSlidesCloud::SpecUtils.api.delete_portions(file_name, slide_index, shape_index, paragraph_index,
213
+ [1], password, folder_name)
214
+ expect(response.items.length).to eq(1)
215
+ end
216
+
217
+ it "delete subshape portions" do
218
+ folder_name = "TempSlidesSDK"
219
+ file_name = "test.pptx"
220
+ password = "password"
221
+ slide_index = 6
222
+ shape_index = 3
223
+ sub_shape = "1"
224
+ paragraph_index = 1
225
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
226
+
227
+ response = AsposeSlidesCloud::SpecUtils.api.delete_portions(file_name, slide_index, shape_index,
228
+ paragraph_index, nil, password, folder_name, "", sub_shape)
229
+ expect(response.items.length).to eq(0)
230
+ end
231
+
232
+ it "delete subshape portions index" do
233
+ folder_name = "TempSlidesSDK"
234
+ file_name = "test.pptx"
235
+ password = "password"
236
+ slide_index = 6
237
+ shape_index = 3
238
+ sub_shape = "1"
239
+ paragraph_index = 1
240
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
241
+
242
+ response = AsposeSlidesCloud::SpecUtils.api.delete_portions(file_name, slide_index, shape_index,
243
+ paragraph_index, [1], password, folder_name, "", sub_shape)
244
+ expect(response.items.length).to eq(1)
245
+ end
246
+
247
+ it "delete portion" do
248
+ folder_name = "TempSlidesSDK"
249
+ file_name = "test.pptx"
250
+ password = "password"
251
+ slide_index = 6
252
+ shape_index = 2
253
+ paragraph_index = 1
254
+ portion_index = 1
255
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
256
+
257
+ response = AsposeSlidesCloud::SpecUtils.api.delete_portion(file_name, slide_index, shape_index, paragraph_index,
258
+ portion_index, password, folder_name)
259
+ expect(response.items.length).to eq(1)
260
+ end
261
+
262
+ it "delete subshape portion" do
263
+ folder_name = "TempSlidesSDK"
264
+ file_name = "test.pptx"
265
+ password = "password"
266
+ slide_index = 6
267
+ shape_index = 3
268
+ sub_shape = "1"
269
+ paragraph_index = 1
270
+ portion_index = 1
271
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
272
+
273
+ response = AsposeSlidesCloud::SpecUtils.api.delete_portion(file_name, slide_index, shape_index, paragraph_index,
274
+ portion_index, password, folder_name, "", sub_shape)
275
+ expect(response.items.length).to eq(1)
276
+ end
277
+
278
+ it "get portion rect" do
279
+ folder_name = "TempSlidesSDK"
280
+ file_name = "test.pptx"
281
+ password = "password"
282
+ slide_index = 6
283
+ shape_index = 2
284
+ paragraph_index = 1
285
+ portion_index = 1
286
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
287
+ response = AsposeSlidesCloud::SpecUtils.api.get_portion_rectangle(file_name, slide_index, shape_index, paragraph_index,
288
+ portion_index, password, folder_name)
289
+ expect(response.x).not_to eq(0)
290
+ expect(response.y).not_to eq(0)
291
+ expect(response.width).not_to eq(0)
292
+ expect(response.height).not_to eq(0)
293
+ end
294
+
295
+ it "get portion effective" do
296
+ folder_name = "TempSlidesSDK"
297
+ file_name = "test.pptx"
298
+ password = "password"
299
+ slide_index = 6
300
+ shape_index = 2
301
+ paragraph_index = 1
302
+ portion_index = 1
303
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
304
+ response = AsposeSlidesCloud::SpecUtils.api.get_portion_effective(file_name, slide_index, shape_index, paragraph_index,
305
+ portion_index, password, folder_name)
306
+ expect(response.font_height).to eq(18)
307
+ end
308
+
309
+ it "get subshape portion effective" do
310
+ folder_name = "TempSlidesSDK"
311
+ file_name = "test.pptx"
312
+ password = "password"
313
+ slide_index = 6
314
+ shape_index = 3
315
+ sub_shape = "1"
316
+ paragraph_index = 1
317
+ portion_index = 1
318
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
319
+ response = AsposeSlidesCloud::SpecUtils.api.get_portion_effective(file_name, slide_index, shape_index,
320
+ paragraph_index, portion_index, password, folder_name, "", sub_shape)
321
+ expect(response.font_height).to eq(18)
322
+ end
323
+ end
324
+ end
@@ -173,5 +173,64 @@ describe 'UseCases' do
173
173
  result = AsposeSlidesCloud::SpecUtils.api.delete_protection_online(source, "password")
174
174
  expect(result.size).not_to eq(source.size)
175
175
  end
176
+
177
+ it "get view properties" do
178
+ folder_name = "TempSlidesSDK"
179
+ file_name = "test.pptx"
180
+ password = "password"
181
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
182
+ response = AsposeSlidesCloud::SpecUtils.api.get_view_properties(file_name, password, folder_name)
183
+ expect(response.show_comments).to eq ('True')
184
+ end
185
+
186
+ it "set view properties" do
187
+ folder_name = "TempSlidesSDK"
188
+ file_name = "test.pptx"
189
+ password = "password"
190
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
191
+ dto = AsposeSlidesCloud::ViewProperties.new
192
+ dto.show_comments = "False"
193
+ dto.slide_view_properties = AsposeSlidesCloud::CommonSlideViewProperties.new
194
+ dto.slide_view_properties.scale = 50
195
+ response = AsposeSlidesCloud::SpecUtils.api.set_view_properties(file_name, dto, password, folder_name)
196
+ expect(response.show_comments).to eq "False"
197
+ expect(response.slide_view_properties.scale).to eq 50
198
+ end
199
+
200
+ it "protection check" do
201
+ folder_name = "TempSlidesSDK"
202
+ file_name = "test.pptx"
203
+ password = "password"
204
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
205
+ protection_properties = AsposeSlidesCloud::SpecUtils.api.get_protection_properties(file_name, nil, folder_name)
206
+ expect(protection_properties.is_encrypted).to eq true
207
+ expect(protection_properties.read_password).to eq nil
208
+ protection_properties = AsposeSlidesCloud::SpecUtils.api.get_protection_properties(file_name, password, folder_name)
209
+ expect(protection_properties.is_encrypted).to eq true
210
+ expect(protection_properties.read_password).not_to eq nil
211
+ end
212
+
213
+ it "get slide show properties" do
214
+ folder_name = "TempSlidesSDK"
215
+ file_name = "test.pptx"
216
+ password = "password"
217
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
218
+ response = AsposeSlidesCloud::SpecUtils.api.get_slide_show_properties(file_name, password, folder_name)
219
+ expect(response.show_animation).to eq (true)
220
+ expect(response.show_narration).to eq (true)
221
+ end
222
+
223
+ it "set slide show properties" do
224
+ folder_name = "TempSlidesSDK"
225
+ file_name = "test.pptx"
226
+ password = "password"
227
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
228
+ dto = AsposeSlidesCloud::SlideShowProperties.new
229
+ dto.loop = true
230
+ dto.slide_show_type = "PresentedBySpeaker"
231
+ response = AsposeSlidesCloud::SpecUtils.api.set_slide_show_properties(file_name, dto, password, folder_name)
232
+ expect(response.loop).to eq dto.loop
233
+ expect(response.slide_show_type).to eq dto.slide_show_type
234
+ end
176
235
  end
177
236
  end
@@ -336,22 +336,22 @@ describe 'UseCases' do
336
336
  file_name = "test.pptx"
337
337
  password = "password"
338
338
  slide_index = 1
339
- path = "4/shapes"
340
- shape1_index = 1
341
- shape2_index = 2
339
+ shape_index = 4
340
+ sub_shape1 = "1"
341
+ sub_shape2 = "2"
342
342
  AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
343
- shape11 = AsposeSlidesCloud::SpecUtils.api.get_subshape(file_name, slide_index, path, shape1_index, password, folder_name)
344
- shape12 = AsposeSlidesCloud::SpecUtils.api.get_subshape(file_name, slide_index, path, shape2_index, password, folder_name)
343
+ shape11 = AsposeSlidesCloud::SpecUtils.api.get_shape(file_name, slide_index, shape_index, password, folder_name, "", sub_shape1)
344
+ shape12 = AsposeSlidesCloud::SpecUtils.api.get_shape(file_name, slide_index, shape_index, password, folder_name, "", sub_shape2)
345
345
  expect(shape12.x).not_to be_within(1).of(shape11.x)
346
346
  expect(shape12.y).not_to eq(shape11.y)
347
- AsposeSlidesCloud::SpecUtils.api.align_subshapes(file_name, slide_index, path, "AlignTop", nil, nil, password, folder_name)
348
- shape21 = AsposeSlidesCloud::SpecUtils.api.get_subshape(file_name, slide_index, path, shape1_index, password, folder_name)
349
- shape22 = AsposeSlidesCloud::SpecUtils.api.get_subshape(file_name, slide_index, path, shape2_index, password, folder_name)
347
+ AsposeSlidesCloud::SpecUtils.api.align_shapes(file_name, slide_index, "AlignTop", nil, nil, password, folder_name, "", "4")
348
+ shape21 = AsposeSlidesCloud::SpecUtils.api.get_shape(file_name, slide_index, shape_index, password, folder_name, "", sub_shape1)
349
+ shape22 = AsposeSlidesCloud::SpecUtils.api.get_shape(file_name, slide_index, shape_index, password, folder_name, "", sub_shape2)
350
350
  expect(shape22.x).not_to be_within(1).of(shape21.x)
351
351
  expect(shape22.y).to be_within(1).of(shape21.y)
352
- AsposeSlidesCloud::SpecUtils.api.align_subshapes(file_name, slide_index, path, "AlignLeft", true, [1, 2], password, folder_name)
353
- shape31 = AsposeSlidesCloud::SpecUtils.api.get_subshape(file_name, slide_index, path, shape1_index, password, folder_name)
354
- shape32 = AsposeSlidesCloud::SpecUtils.api.get_subshape(file_name, slide_index, path, shape2_index, password, folder_name)
352
+ AsposeSlidesCloud::SpecUtils.api.align_shapes(file_name, slide_index, "AlignLeft", true, [1, 2], password, folder_name, "", "4")
353
+ shape31 = AsposeSlidesCloud::SpecUtils.api.get_shape(file_name, slide_index, shape_index, password, folder_name, "", sub_shape1)
354
+ shape32 = AsposeSlidesCloud::SpecUtils.api.get_shape(file_name, slide_index, shape_index, password, folder_name, "", sub_shape2)
355
355
  expect(shape32.x).to be_within(1).of(shape31.x)
356
356
  expect(shape32.x).to be_within(1).of(0)
357
357
  expect(shape32.y).to be_within(1).of(shape31.y)
@@ -393,5 +393,208 @@ describe 'UseCases' do
393
393
  shape = AsposeSlidesCloud::SpecUtils.api.set_shape_geometry_path(file_name, 4, 1, dto, "password", folder_name)
394
394
  expect(shape).to be_truthy
395
395
  end
396
+
397
+ it "zoom frame add" do
398
+ folder_name = "TempSlidesSDK"
399
+ file_name = "test.pptx"
400
+ slide_index = 3
401
+ password = "password"
402
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
403
+ dto = AsposeSlidesCloud::ZoomFrame.new
404
+ dto.x = 20
405
+ dto.y = 20
406
+ dto.width = 200
407
+ dto.height = 100
408
+ dto.target_slide_index = 2
409
+ begin
410
+ shape = AsposeSlidesCloud::SpecUtils.api.create_shape(file_name, slide_index, dto, nil, nil, password, folder_name)
411
+ expect(shape).to be_kind_of(AsposeSlidesCloud::ZoomFrame)
412
+ expect(shape.target_slide_index).to eq(2)
413
+ fail "The exception has been fixed. Please remove the begin/rescue block"
414
+ rescue ArgumentError => e
415
+ #
416
+ end
417
+ end
418
+
419
+ it "section zoom frame add" do
420
+ folder_name = "TempSlidesSDK"
421
+ file_name = "test.pptx"
422
+ slide_index = 3
423
+ password = "password"
424
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
425
+ dto = AsposeSlidesCloud::SectionZoomFrame.new
426
+ dto.x = 20
427
+ dto.y = 20
428
+ dto.width = 200
429
+ dto.height = 100
430
+ dto.target_section_index = 2
431
+ begin
432
+ shape = AsposeSlidesCloud::SpecUtils.api.create_shape(file_name, slide_index, dto, nil, nil, password, folder_name)
433
+ expect(shape).to be_kind_of(AsposeSlidesCloud::SectionZoomFrame)
434
+ expect(shape.target_section_index).to eq(2)
435
+ fail "The exception has been fixed. Please remove the begin/rescue block"
436
+ rescue ArgumentError => e
437
+ #
438
+ end
439
+ end
440
+
441
+ it "ole object frame add by link" do
442
+ folder_name = "TempSlidesSDK"
443
+ file_name = "test.pptx"
444
+ slide_index = 3
445
+ password = "password"
446
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
447
+ dto = AsposeSlidesCloud::OleObjectFrame.new
448
+ dto.x = 20
449
+ dto.y = 20
450
+ dto.width = 200
451
+ dto.height = 200
452
+ dto.link_path = "oleObject.xlsx"
453
+ dto.object_prog_id = "Excel.Sheet.8"
454
+ shape = AsposeSlidesCloud::SpecUtils.api.create_shape(file_name, slide_index, dto, nil, nil, password, folder_name)
455
+ expect(shape).to be_kind_of(AsposeSlidesCloud::OleObjectFrame)
456
+ expect(shape.link_path).to eq(dto.link_path)
457
+ end
458
+
459
+ it "ole object frame add embedded" do
460
+ folder_name = "TempSlidesSDK"
461
+ file_name = "test.pptx"
462
+ slide_index = 3
463
+ password = "password"
464
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
465
+ source = File.binread("TestData/oleObject.xlsx")
466
+
467
+ dto = AsposeSlidesCloud::OleObjectFrame.new
468
+ dto.x = 20
469
+ dto.y = 20
470
+ dto.width = 200
471
+ dto.height = 200
472
+ dto.embedded_file_extension = "xlsx"
473
+ dto.embedded_file_base64_data = Base64.encode64(source)
474
+
475
+ shape = AsposeSlidesCloud::SpecUtils.api.create_shape(file_name, slide_index, dto, nil, nil, password, folder_name)
476
+ expect(shape).to be_kind_of(AsposeSlidesCloud::OleObjectFrame)
477
+ expect(shape.embedded_file_base64_data).not_to eq(nil)
478
+ end
479
+
480
+ it "group shape add" do
481
+ folder_name = "TempSlidesSDK"
482
+ file_name = "test.pptx"
483
+ slide_index = 5
484
+ password = "password"
485
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
486
+ shapes = AsposeSlidesCloud::SpecUtils.api.get_shapes(file_name, slide_index, password, folder_name)
487
+ expect(shapes.shapes_links.length).to eq(0)
488
+
489
+ group_shape = AsposeSlidesCloud::GroupShape.new
490
+ AsposeSlidesCloud::SpecUtils.api.create_shape(file_name, slide_index, group_shape, nil, nil, password, folder_name)
491
+
492
+ shape1 = AsposeSlidesCloud::Shape.new
493
+ shape1.shape_type = "Rectangle"
494
+ shape1.x = 50
495
+ shape1.y = 400
496
+ shape1.width = 50
497
+ shape1.height = 50
498
+ shape2 = AsposeSlidesCloud::Shape.new
499
+ shape2.shape_type = "Ellipse"
500
+ shape2.x = 150
501
+ shape2.y = 400
502
+ shape2.width = 50
503
+ shape2.height = 50
504
+ shape3 = AsposeSlidesCloud::Shape.new
505
+ shape3.shape_type = "Triangle"
506
+ shape3.x = 250
507
+ shape3.y = 400
508
+ shape3.width = 50
509
+ shape3.height = 50
510
+
511
+ AsposeSlidesCloud::SpecUtils.api.create_shape(file_name, slide_index, shape1, nil, nil, password, folder_name, "", "1")
512
+ AsposeSlidesCloud::SpecUtils.api.create_shape(file_name, slide_index, shape2, nil, nil, password, folder_name, "", "1")
513
+ AsposeSlidesCloud::SpecUtils.api.create_shape(file_name, slide_index, shape3, nil, nil, password, folder_name, "", "1")
514
+
515
+ shapes = AsposeSlidesCloud::SpecUtils.api.get_shapes(file_name, slide_index, password, folder_name)
516
+ expect(shapes.shapes_links.length).to eq(1)
517
+ shapes = AsposeSlidesCloud::SpecUtils.api.get_shapes(file_name, slide_index, password, folder_name, "", nil, "1")
518
+ expect(shapes.shapes_links.length).to eq(3)
519
+ end
520
+
521
+ it "import shapes from SVG" do
522
+ folder_name = "TempSlidesSDK"
523
+ file_name = "test.pptx"
524
+ slide_index = 5
525
+ password = "password"
526
+ source = File.binread("TestData/shapes.svg")
527
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
528
+ response = AsposeSlidesCloud::SpecUtils.api.import_shapes_from_svg(file_name, slide_index, source, 50, 50, 300, 300,
529
+ [1,3,5], false, password, folder_name)
530
+ expect(response.shapes_links.length).to eq(3)
531
+ end
532
+
533
+ it "create smart art node" do
534
+ folder_name = "TempSlidesSDK"
535
+ file_name = "test.pptx"
536
+ slide_index = 7
537
+ smart_art_index = 1
538
+ new_node_text = "New-root-node"
539
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
540
+ response = AsposeSlidesCloud::SpecUtils.api.create_smart_art_node(file_name, slide_index, smart_art_index, nil, new_node_text,
541
+ nil, "password", folder_name)
542
+ expect(response.nodes.length).to eq(2)
543
+ expect(response.nodes[1].text).to eq(new_node_text)
544
+ end
545
+
546
+ it "create smart art sub node" do
547
+ folder_name = "TempSlidesSDK"
548
+ file_name = "test.pptx"
549
+ slide_index = 7
550
+ smart_art_index = 1
551
+ sub_node_path = "1"
552
+ position = 1
553
+ new_node_text = "New-sub-node"
554
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
555
+ response = AsposeSlidesCloud::SpecUtils.api.create_smart_art_node(file_name, slide_index, smart_art_index, sub_node_path,
556
+ new_node_text, position, "password", folder_name)
557
+ expect(response.nodes[0].nodes.length).to eq(5)
558
+ expect(response.nodes[0].nodes[0].text).to eq(new_node_text)
559
+ end
560
+
561
+ it "create smart art sub sub node" do
562
+ folder_name = "TempSlidesSDK"
563
+ file_name = "test.pptx"
564
+ slide_index = 7
565
+ smart_art_index = 1
566
+ sub_node_path = "1/nodes/1"
567
+ new_node_text = "New-sub-sub-node"
568
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
569
+ response = AsposeSlidesCloud::SpecUtils.api.create_smart_art_node(file_name, slide_index, smart_art_index, sub_node_path,
570
+ new_node_text, nil, "password", folder_name)
571
+ expect(response.nodes[0].nodes[0].nodes.length).to eq(1)
572
+ expect(response.nodes[0].nodes[0].nodes[0].text).to eq(new_node_text)
573
+ end
574
+
575
+ it "delete smart art node" do
576
+ folder_name = "TempSlidesSDK"
577
+ file_name = "test.pptx"
578
+ slide_index = 7
579
+ smart_art_index = 2
580
+ node_index = 1
581
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
582
+ response = AsposeSlidesCloud::SpecUtils.api.delete_smart_art_node(file_name, slide_index, smart_art_index, node_index, nil,
583
+ "password", folder_name)
584
+ expect(response.nodes.length).to eq(2)
585
+ end
586
+
587
+ it "delete smart art sub node" do
588
+ folder_name = "TempSlidesSDK"
589
+ file_name = "test.pptx"
590
+ slide_index = 7
591
+ smart_art_index = 1
592
+ node_index = 1
593
+ sub_node_path = "2"
594
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
595
+ response = AsposeSlidesCloud::SpecUtils.api.delete_smart_art_node(file_name, slide_index, smart_art_index, node_index,
596
+ sub_node_path, "password", folder_name)
597
+ expect(response.nodes[0].nodes.length).to eq(3)
598
+ end
396
599
  end
397
600
  end