aspose_slides_cloud 22.8.0 → 22.10.0

Sign up to get free protection for your applications and to get access to all the features.
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