aspose_slides_cloud 22.7.0 → 22.9.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 +7 -7
  3. data/README.md +17 -1
  4. data/TestData/calibri.ttf +0 -0
  5. data/TestData/shapes.svg +20 -0
  6. data/TestData/test.pptx +0 -0
  7. data/docker-entrypoint.sh +3 -1
  8. data/lib/aspose_slides_cloud/api/slides_api.rb +953 -51
  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/export_options.rb +13 -1
  12. data/lib/aspose_slides_cloud/models/font_data.rb +221 -0
  13. data/lib/aspose_slides_cloud/models/font_subst_rule.rb +231 -0
  14. data/lib/aspose_slides_cloud/models/fonts_data.rb +213 -0
  15. data/lib/aspose_slides_cloud/models/gif_export_options.rb +2 -1
  16. data/lib/aspose_slides_cloud/models/html5_export_options.rb +2 -1
  17. data/lib/aspose_slides_cloud/models/html_export_options.rb +2 -1
  18. data/lib/aspose_slides_cloud/models/image_export_options.rb +2 -1
  19. data/lib/aspose_slides_cloud/models/image_export_options_base.rb +2 -1
  20. data/lib/aspose_slides_cloud/models/one_value_chart_data_point.rb +5 -1
  21. data/lib/aspose_slides_cloud/models/pdf_export_options.rb +2 -1
  22. data/lib/aspose_slides_cloud/models/pptx_export_options.rb +2 -1
  23. data/lib/aspose_slides_cloud/models/scatter_chart_data_point.rb +5 -1
  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 +3 -0
  33. data/spec/api/slides_api_spec.rb +2414 -4
  34. data/spec/spec_utils.rb +5 -1
  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 +39 -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 +322 -0
  44. data/spec/use_cases/portion_spec.rb +316 -0
  45. data/spec/use_cases/property_spec.rb +37 -1
  46. data/spec/use_cases/shape_spec.rb +193 -0
  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 +32 -1
  51. metadata +19 -2
data/spec/spec_utils.rb CHANGED
@@ -71,7 +71,11 @@ module AsposeSlidesCloud
71
71
  if method.casecmp("ImportFromPdf") == 0
72
72
  fileName = "test.pdf"
73
73
  elsif name.casecmp("Image") == 0
74
- fileName = "watermark.png"
74
+ if method.casecmp("ImportShapesFromSvg") == 0
75
+ fileName = "shapes.svg"
76
+ else
77
+ fileName = "watermark.png"
78
+ end
75
79
  end
76
80
  return File.binread(File.join(TEST_DATA_PATH, fileName))
77
81
  end
@@ -287,5 +287,214 @@ describe 'UseCases' do
287
287
  expect(result.series.length).to eq(1)
288
288
  expect(result.categories.length).to eq(4)
289
289
  end
290
+
291
+ it 'multi level category axis' do
292
+ folder_name = "TempSlidesSDK"
293
+ file_name = "test.pptx"
294
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
295
+
296
+ chart = AsposeSlidesCloud::Chart.new
297
+ chart.x = 100
298
+ charty = 100
299
+ chart.width = 500
300
+ chart.height = 400
301
+ chart.chart_type = "ClusteredColumn"
302
+
303
+ series = AsposeSlidesCloud::OneValueSeries.new
304
+ series.type = "ClusteredColumn"
305
+ point1 = AsposeSlidesCloud::OneValueChartDataPoint.new
306
+ point1.value = 1
307
+ point2 = AsposeSlidesCloud::OneValueChartDataPoint.new
308
+ point2.value = 2
309
+ point3 = AsposeSlidesCloud::OneValueChartDataPoint.new
310
+ point3.value = 3
311
+ point4 = AsposeSlidesCloud::OneValueChartDataPoint.new
312
+ point4.value = 4
313
+ point5 = AsposeSlidesCloud::OneValueChartDataPoint.new
314
+ point5.value = 5
315
+ point6 = AsposeSlidesCloud::OneValueChartDataPoint.new
316
+ point6.value = 6
317
+ point7 = AsposeSlidesCloud::OneValueChartDataPoint.new
318
+ point7.value = 7
319
+ point8 = AsposeSlidesCloud::OneValueChartDataPoint.new
320
+ point8.value = 8
321
+ series.data_points = [ point1, point2, point3, point4, point5, point6, point7, point8 ]
322
+ chart.series = [ series ]
323
+
324
+ category1 = AsposeSlidesCloud::ChartCategory.new
325
+ category1.value = "Category 1"
326
+ category1.parent_categories = ["Sub-category 1", "Root 1"]
327
+ category2 = AsposeSlidesCloud::ChartCategory.new
328
+ category2.value = "Category 2"
329
+ category3 = AsposeSlidesCloud::ChartCategory.new
330
+ category3.value = "Category 3"
331
+ category3.parent_categories = ["Sub-category 2"]
332
+ category4 = AsposeSlidesCloud::ChartCategory.new
333
+ category4.value = "Category 4"
334
+ category5 = AsposeSlidesCloud::ChartCategory.new
335
+ category5.value = "Category 5"
336
+ category5.parent_categories = ["Sub-category 3", "Root 2"]
337
+ category6 = AsposeSlidesCloud::ChartCategory.new
338
+ category6.value = "Category 6"
339
+ category7 = AsposeSlidesCloud::ChartCategory.new
340
+ category7.value = "Category 7"
341
+ category7.parent_categories = ["Sub-category 4"]
342
+ category8 = AsposeSlidesCloud::ChartCategory.new
343
+ category8.value = "Category 7"
344
+ chart.categories = [category1, category2, category3, category4, category5, category6, category7, category8]
345
+
346
+ response = AsposeSlidesCloud::SpecUtils.api.create_shape(file_name, 3, chart, nil, nil, "password", folder_name)
347
+ expect(response.categories.length).to eq(8)
348
+ expect(response.series.length).to eq(1)
349
+ expect(response.categories[0].parent_categories.length).to eq(2)
350
+ end
351
+
352
+ it "hide chart legend" do
353
+ folder_name = "TempSlidesSDK"
354
+ file_name = "test.pptx"
355
+ slide_index = 3
356
+ shape_index = 1
357
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
358
+
359
+ chart = AsposeSlidesCloud::SpecUtils.api.get_shape(file_name, slide_index, shape_index, "password", folder_name)
360
+ chart.legend.has_legend = false
361
+ response = AsposeSlidesCloud::SpecUtils.api.update_shape(file_name, slide_index, shape_index, chart, "password", folder_name)
362
+ expect(response.legend.has_legend).to eq(false)
363
+ end
364
+
365
+ it "grid lines format" do
366
+ folder_name = "TempSlidesSDK"
367
+ file_name = "test.pptx"
368
+ slide_index = 3
369
+ shape_index = 1
370
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
371
+
372
+ chart = AsposeSlidesCloud::SpecUtils.api.get_shape(file_name, slide_index, shape_index, "password", folder_name)
373
+ chart.axes = AsposeSlidesCloud::Axes.new
374
+
375
+ horizontal_axis = AsposeSlidesCloud::Axis.new
376
+ horizontal_axis.major_grid_lines_format = AsposeSlidesCloud::ChartLinesFormat.new
377
+ horizontal_axis.major_grid_lines_format.line_format = AsposeSlidesCloud::LineFormat.new
378
+ horizontal_axis.major_grid_lines_format.line_format.fill_format = AsposeSlidesCloud::NoFill.new
379
+
380
+ horizontal_axis.minor_grid_lines_format = AsposeSlidesCloud::ChartLinesFormat.new
381
+ horizontal_axis.minor_grid_lines_format.line_format = AsposeSlidesCloud::LineFormat.new
382
+ horizontal_axis.minor_grid_lines_format.line_format.fill_format = AsposeSlidesCloud::SolidFill.new
383
+ horizontal_axis.minor_grid_lines_format.line_format.fill_format.color = "Black"
384
+
385
+ vertical_axis = AsposeSlidesCloud::Axis.new
386
+ vertical_axis.major_grid_lines_format = AsposeSlidesCloud::ChartLinesFormat.new
387
+ vertical_axis.major_grid_lines_format.line_format = AsposeSlidesCloud::LineFormat.new
388
+ gradient_fill = AsposeSlidesCloud::GradientFill.new
389
+ gradient_fill.direction = "FromCorner1"
390
+ gradient_stop1 = AsposeSlidesCloud::GradientFillStop.new
391
+ gradient_stop1.color = "White"
392
+ gradient_stop1.position = 0
393
+ gradient_stop2 = AsposeSlidesCloud::GradientFillStop.new
394
+ gradient_stop2.color = "Black"
395
+ gradient_stop2.position = 1
396
+ gradient_fill.stops = [gradient_stop1, gradient_stop2]
397
+ vertical_axis.major_grid_lines_format.line_format.fill_format = gradient_fill
398
+
399
+ vertical_axis.minor_grid_lines_format = AsposeSlidesCloud::ChartLinesFormat.new
400
+ vertical_axis.minor_grid_lines_format.line_format = AsposeSlidesCloud::LineFormat.new
401
+ vertical_axis.minor_grid_lines_format.line_format.fill_format = AsposeSlidesCloud::NoFill.new
402
+
403
+ response = AsposeSlidesCloud::SpecUtils.api.update_shape(file_name, slide_index, shape_index, chart, "password", folder_name)
404
+ expect(horizontal_axis.major_grid_lines_format.line_format.fill_format.type).to eq("NoFill")
405
+ expect(horizontal_axis.minor_grid_lines_format.line_format.fill_format.type).to eq("Solid")
406
+ expect(vertical_axis.major_grid_lines_format.line_format.fill_format.type).to eq("Gradient")
407
+ expect(vertical_axis.minor_grid_lines_format.line_format.fill_format.type).to eq("NoFill")
408
+ end
409
+
410
+ it "chart series groups" do
411
+ folder_name = "TempSlidesSDK"
412
+ file_name = "test.pptx"
413
+ slide_index = 3
414
+ shape_index = 1
415
+ series_group_index = 1
416
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
417
+ chart = AsposeSlidesCloud::SpecUtils.api.get_shape(file_name, slide_index, shape_index, "password", folder_name)
418
+ expect(chart.series_groups.length).to eq(1)
419
+ series_group = chart.series_groups[0]
420
+ series_group.overlap = 10
421
+ chart = AsposeSlidesCloud::SpecUtils.api.set_chart_series_group(file_name, slide_index, shape_index, series_group_index,
422
+ series_group, "password", folder_name)
423
+ expect(chart.series_groups[0].overlap).to eq(10)
424
+ end
425
+
426
+ it "set chart legend" do
427
+ folder_name = "TempSlidesSDK"
428
+ file_name = "test.pptx"
429
+ slide_index = 3
430
+ shape_index = 1
431
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
432
+ legend_dto = AsposeSlidesCloud::Legend.new
433
+ legend_dto.overlay = true
434
+ legend_dto.fill_format = AsposeSlidesCloud::SolidFill.new
435
+ legend_dto.fill_format.color = "#77CEF9"
436
+ response = AsposeSlidesCloud::SpecUtils.api.set_chart_legend(file_name, slide_index, shape_index, legend_dto, "password", folder_name)
437
+ expect(response.overlay).to eq(true)
438
+ expect(response.fill_format.type).to eq("Solid")
439
+ end
440
+
441
+ it "set chart axis" do
442
+ folder_name = "TempSlidesSDK"
443
+ file_name = "test.pptx"
444
+ slide_index = 3
445
+ shape_index = 1
446
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
447
+ axis_dto = AsposeSlidesCloud::Axis.new
448
+ axis_dto.has_title = true
449
+ axis_dto.is_automatic_max_value = false
450
+ axis_dto.max_value = 10
451
+ response = AsposeSlidesCloud::SpecUtils.api.set_chart_axis(file_name, slide_index, shape_index, "verticalAxis", axis_dto, "password", folder_name)
452
+ expect(response.has_title).to eq(true)
453
+ expect(response.is_automatic_max_value).to eq(false)
454
+ expect(response.max_value).to eq(axis_dto.max_value)
455
+ end
456
+
457
+ it "set chart wall" do
458
+ folder_name = "TempSlidesSDK"
459
+ file_name = "test.pptx"
460
+ slide_index = 8
461
+ shape_index = 2
462
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
463
+ wall_dto = AsposeSlidesCloud::ChartWall.new
464
+ wall_dto.fill_format = AsposeSlidesCloud::SolidFill.new
465
+ wall_dto.fill_format.color = "#77CEF9"
466
+ response = AsposeSlidesCloud::SpecUtils.api.set_chart_wall(file_name, slide_index, shape_index, "BackWall", wall_dto, "password", folder_name)
467
+ expect(response.fill_format.type).to eq("Solid")
468
+ end
469
+
470
+ it "update data point format" do
471
+ folder_name = "TempSlidesSDK"
472
+ file_name = "test.pptx"
473
+ slide_index = 8
474
+ shape_index = 2
475
+ series_index = 2
476
+ data_point_index = 2
477
+ color = "#77CEF9"
478
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
479
+
480
+ dto = AsposeSlidesCloud::OneValueChartDataPoint.new
481
+ dto.value = 40
482
+ dto.fill_format = AsposeSlidesCloud::SolidFill.new
483
+ dto.fill_format.color = color
484
+ dto.line_format = AsposeSlidesCloud::LineFormat.new
485
+ dto.line_format.fill_format = AsposeSlidesCloud::SolidFill.new
486
+ dto.line_format.fill_format.color = color
487
+ dto.effect_format = AsposeSlidesCloud::EffectFormat.new
488
+ dto.effect_format.blur = AsposeSlidesCloud::BlurEffect.new
489
+ dto.effect_format.blur.grow = true
490
+ dto.effect_format.blur.radius = 5
491
+
492
+ response = AsposeSlidesCloud::SpecUtils.api.update_chart_data_point(file_name, slide_index, shape_index, series_index,
493
+ data_point_index, dto, "password", folder_name)
494
+ data_point = response.series[series_index - 1].data_points[data_point_index - 1]
495
+ expect(data_point.fill_format.type).to eq("Solid")
496
+ expect(data_point.line_format.fill_format.type).to eq("Solid")
497
+ expect(data_point.effect_format.blur).not_to eq(nil)
498
+ end
290
499
  end
291
500
  end
@@ -0,0 +1,159 @@
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 'Comments' do
27
+ it "create comment" do
28
+ folder_name = "TempSlidesSDK"
29
+ file_name = "test.pptx"
30
+ slide_index = 3
31
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
32
+ dto = AsposeSlidesCloud::SlideComment.new
33
+ dto.text = "Comment text"
34
+ dto.author = "Test author"
35
+ child_comment = AsposeSlidesCloud::SlideComment.new
36
+ child_comment.text = "Child comment text"
37
+ child_comment.author = "Test author"
38
+ dto.child_comments = [child_comment]
39
+ response = AsposeSlidesCloud::SpecUtils.api.create_comment(file_name, slide_index, dto, nil, "password", folder_name)
40
+ expect(response.list.length).to eq(1)
41
+ expect(response.list[0].text).to eq(dto.text)
42
+ expect(response.list[0].author).to eq(dto.author)
43
+ expect(response.list[0].child_comments[0].text).to eq(child_comment.text)
44
+ expect(response.list[0].child_comments[0].author).to eq(child_comment.author)
45
+ end
46
+
47
+
48
+ it "create comment online" do
49
+ dto = AsposeSlidesCloud::SlideComment.new
50
+ dto.text = "Comment text"
51
+ dto.author = "Test author"
52
+ child_comment = AsposeSlidesCloud::SlideComment.new
53
+ child_comment.text = "Child comment text"
54
+ child_comment.author = "Test author"
55
+ dto.child_comments = [child_comment]
56
+
57
+ source = File.binread("TestData/test.pptx")
58
+ slide_index = 3
59
+ response = AsposeSlidesCloud::SpecUtils.api.create_comment_online(source, slide_index, dto, nil, "password")
60
+ expect(response.size).not_to eq(source.size)
61
+ end
62
+
63
+ it "get slide comments" do
64
+ folder_name = "TempSlidesSDK"
65
+ file_name = "test.pptx"
66
+ slide_index = 1
67
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
68
+ response = AsposeSlidesCloud::SpecUtils.api.get_slide_comments(file_name, slide_index, "password", folder_name)
69
+ expect(response.list.length).to eq(2)
70
+ expect(response.list[0].child_comments.length).to eq(1)
71
+ end
72
+
73
+ it "delete comments" do
74
+ folder_name = "TempSlidesSDK"
75
+ file_name = "test.pptx"
76
+ slide_index = 1
77
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
78
+ AsposeSlidesCloud::SpecUtils.api.delete_comments(file_name, nil, "password", folder_name)
79
+ response = AsposeSlidesCloud::SpecUtils.api.get_slide_comments(file_name, slide_index, "password", folder_name)
80
+ expect(response.list.length).to eq(0)
81
+ end
82
+
83
+ it "delete comments online" do
84
+ source = File.binread("TestData/test.pptx")
85
+ response = AsposeSlidesCloud::SpecUtils.api.delete_comments_online(source, nil, "password")
86
+ expect(response.size).not_to eq(source.size)
87
+ end
88
+
89
+ it "delete slide comments" do
90
+ folder_name = "TempSlidesSDK"
91
+ file_name = "test.pptx"
92
+ slide_index = 1
93
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
94
+ AsposeSlidesCloud::SpecUtils.api.delete_slide_comments(file_name, slide_index, nil, "password", folder_name)
95
+ response = AsposeSlidesCloud::SpecUtils.api.get_slide_comments(file_name, slide_index, "password", folder_name)
96
+ expect(response.list.length).to eq(0)
97
+ end
98
+
99
+ it "delete slide comments online" do
100
+ source = File.binread("TestData/test.pptx")
101
+ slide_index = 1
102
+ response = AsposeSlidesCloud::SpecUtils.api.delete_slide_comments_online(source, slide_index, nil, "password")
103
+ expect(response.size).not_to eq(source.size)
104
+ end
105
+
106
+ it "create modern comment" do
107
+ folder_name = "TempSlidesSDK"
108
+ file_name = "test.pptx"
109
+ slide_index = 3
110
+ text_selection_start_index = 1
111
+ text_selection_length = 5
112
+
113
+ child_comment = AsposeSlidesCloud::SlideModernComment.new
114
+ child_comment.author = "Test author"
115
+ child_comment.text = "Child comment text"
116
+ child_comment.status = "Resolved"
117
+
118
+ comment = AsposeSlidesCloud::SlideModernComment.new
119
+ comment.author = "Test author"
120
+ comment.text = "Comment text"
121
+ comment.status = "Active"
122
+ comment.text_selection_start = text_selection_start_index
123
+ comment.text_selection_length = text_selection_length
124
+ comment.child_comments = [child_comment]
125
+
126
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
127
+ response = AsposeSlidesCloud::SpecUtils.api.create_comment(file_name, slide_index, comment, nil, "password", folder_name)
128
+ expect(response.list.length).to eq(1)
129
+ expect(response.list[0].type).to eq("Modern")
130
+ end
131
+
132
+ it "create shape modern comment" do
133
+ folder_name = "TempSlidesSDK"
134
+ file_name = "test.pptx"
135
+ slide_index = 3
136
+ shape_index = 1
137
+ text_selection_start_index = 1
138
+ text_selection_length = 5
139
+
140
+ child_comment = AsposeSlidesCloud::SlideModernComment.new
141
+ child_comment.author = "Test author"
142
+ child_comment.text = "Child comment text"
143
+ child_comment.status = "Resolved"
144
+
145
+ comment = AsposeSlidesCloud::SlideModernComment.new
146
+ comment.author = "Test author"
147
+ comment.text = "Comment text"
148
+ comment.status = "Active"
149
+ comment.text_selection_start = text_selection_start_index
150
+ comment.text_selection_length = text_selection_length
151
+ comment.child_comments = [child_comment]
152
+
153
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
154
+ response = AsposeSlidesCloud::SpecUtils.api.create_comment(file_name, slide_index, comment, shape_index, "password", folder_name)
155
+ expect(response.list.length).to eq(1)
156
+ expect(response.list[0].type).to eq("Modern")
157
+ end
158
+ end
159
+ end
@@ -142,6 +142,14 @@ describe 'UseCases' do
142
142
  AsposeSlidesCloud::SpecUtils.api.download_shape(file_name, 1, 1, AsposeSlidesCloud::ShapeExportFormat::PNG, nil, nil, nil, nil, "password", folder_name)
143
143
  end
144
144
 
145
+ it 'subshape post from storage' do
146
+ folder_name = "TempSlidesSDK"
147
+ file_name = "test.pptx"
148
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
149
+ response = AsposeSlidesCloud::SpecUtils.api.download_subshape(file_name, 1, "4/shapes", 1, AsposeSlidesCloud::ShapeExportFormat::PNG, nil, nil, nil, nil, "password", folder_name)
150
+ expect(response.size).not_to eq(0)
151
+ end
152
+
145
153
  it 'shape put from storage' do
146
154
  folder_name = "TempSlidesSDK"
147
155
  file_name = "test.pptx"
@@ -150,5 +158,36 @@ describe 'UseCases' do
150
158
  AsposeSlidesCloud::SpecUtils.api.save_shape(file_name, 1, 1, AsposeSlidesCloud::ShapeExportFormat::PNG, out_path, nil, nil, nil, nil, "password", folder_name)
151
159
  expect(AsposeSlidesCloud::SpecUtils.api.object_exists(out_path).exists).to be true
152
160
  end
161
+
162
+ it 'subshape put from storage' do
163
+ folder_name = "TempSlidesSDK"
164
+ file_name = "test.pptx"
165
+ out_path = "TestData/test.png"
166
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
167
+ AsposeSlidesCloud::SpecUtils.api.save_subshape(file_name, 1, "4/shapes", 1, AsposeSlidesCloud::ShapeExportFormat::PNG, out_path, nil, nil, nil, nil, "password", folder_name)
168
+ expect(AsposeSlidesCloud::SpecUtils.api.object_exists(out_path).exists).to be true
169
+ end
170
+
171
+ it "font fallback rules" do
172
+ font_rule1 = AsposeSlidesCloud::FontFallbackRule.new
173
+ font_rule1.range_start_index = 0x0B80
174
+ font_rule1.range_end_index = 0x0BFF
175
+ font_rule1.fallback_font_list = ["Vijaya"]
176
+
177
+ font_rule2 = AsposeSlidesCloud::FontFallbackRule.new
178
+ font_rule2.range_start_index = 0x0B80
179
+ font_rule2.range_end_index = 0x0BFF
180
+ font_rule2.fallback_font_list = ["Segoe UI Emoji", "Segoe UI Symbol", "Arial"]
181
+
182
+ font_rules = [font_rule1, font_rule2]
183
+ export_options = AsposeSlidesCloud::ImageExportOptions.new
184
+ export_options.font_fallback_rules = font_rules
185
+
186
+ folder_name = "TempSlidesSDK"
187
+ file_name = "test.pptx"
188
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
189
+ response = AsposeSlidesCloud::SpecUtils.api.download_presentation(file_name, "PNG", export_options, "password", folder_name)
190
+ expect(response.size).not_to eq(0)
191
+ end
153
192
  end
154
193
  end
@@ -0,0 +1,143 @@
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 'Fonts' do
27
+ it "get fonts" do
28
+ folder_name = "TempSlidesSDK"
29
+ file_name = "test.pptx"
30
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
31
+ response = AsposeSlidesCloud::SpecUtils.api.get_fonts(file_name, "password", folder_name)
32
+ expect(response.list.length).to eq(3)
33
+ end
34
+
35
+ it "get fonts online" do
36
+ source = File.binread("TestData/test.pptx")
37
+ response = AsposeSlidesCloud::SpecUtils.api.get_fonts_online(source, "password")
38
+ expect(response.list.length).to eq(3)
39
+ end
40
+
41
+ it "set embedded font" do
42
+ folder_name = "TempSlidesSDK"
43
+ file_name = "test.pptx"
44
+ font_name = "Calibri"
45
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
46
+ response = AsposeSlidesCloud::SpecUtils.api.set_embedded_font(file_name, font_name, false, "password", folder_name)
47
+ expect(response.list.length).to eq(3)
48
+ expect(response.list[2].is_embedded).to eq(true)
49
+ expect(response.list[2].font_name).to eq(font_name)
50
+ end
51
+
52
+ it "set embedded font online" do
53
+ source = File.binread("TestData/test.pptx")
54
+ font_name = "Calibri"
55
+ response = AsposeSlidesCloud::SpecUtils.api.set_embedded_font_online(source, font_name, false, "password")
56
+ expect(response.size).not_to eq(source.size)
57
+ end
58
+
59
+ it "set embedded font from request" do
60
+ folder_name = "TempSlidesSDK"
61
+ file_name = "test.pptx"
62
+ font_name = "Calibri"
63
+ source = File.binread("TestData/calibri.ttf")
64
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
65
+ response = AsposeSlidesCloud::SpecUtils.api.set_embedded_font_from_request(source, file_name, false, "password", folder_name)
66
+ expect(response.list.length).to eq(3)
67
+ expect(response.list[2].is_embedded).to eq(true)
68
+ expect(response.list[2].font_name).to eq(font_name)
69
+ end
70
+
71
+ it "set embedded font from request online" do
72
+ folder_name = "TempSlidesSDK"
73
+ file_name = "test.pptx"
74
+ sourceDocument = File.binread("TestData/test.pptx")
75
+ sourceFont = File.binread("TestData/calibri.ttf")
76
+ response = AsposeSlidesCloud::SpecUtils.api.set_embedded_font_from_request_online(sourceDocument, sourceFont,
77
+ false, "password")
78
+ expect(response.size).not_to eq(sourceDocument.size)
79
+ end
80
+
81
+ it "delete embedded font" do
82
+ folder_name = "TempSlidesSDK"
83
+ file_name = "test.pptx"
84
+ font_name = "Calibri"
85
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
86
+ response = AsposeSlidesCloud::SpecUtils.api.set_embedded_font(file_name, font_name, false, "password", folder_name)
87
+ expect(response.list[2].is_embedded).to eq(true)
88
+ response = AsposeSlidesCloud::SpecUtils.api.delete_embedded_font(file_name, font_name, "password", folder_name)
89
+ expect(response.list[2].is_embedded).to eq(false)
90
+ end
91
+
92
+ it "delete embedded font online" do
93
+ source = File.binread("TestData/test.pptx")
94
+ font_name = "Calibri"
95
+ response_embedded = AsposeSlidesCloud::SpecUtils.api.set_embedded_font_online(source, font_name, false, "password")
96
+ expect(response_embedded.size).not_to eq(source.size)
97
+ response_deleted = AsposeSlidesCloud::SpecUtils.api.delete_embedded_font_online(response_embedded, font_name, "password")
98
+ expect(response_deleted.size).to eq(source.size)
99
+ end
100
+
101
+ it "replace font" do
102
+ folder_name = "TempSlidesSDK"
103
+ file_name = "test.pptx"
104
+ source_font_name = "Calibri"
105
+ target_font_name = "Times%20New%20Roman"
106
+ embed = true
107
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
108
+ response = AsposeSlidesCloud::SpecUtils.api.replace_font(file_name, source_font_name, target_font_name, embed,
109
+ "password", folder_name)
110
+ expect(response.list[2].is_embedded).to eq(true)
111
+ expect(response.list[2].font_name).to eq("Times New Roman")
112
+ end
113
+
114
+ it "replace font online" do
115
+ folder_name = "TempSlidesSDK"
116
+ file_name = "test.pptx"
117
+ source_font_name = "Calibri"
118
+ target_font_name = "Times%20New%20Roman"
119
+ embed = true
120
+ source = File.binread("TestData/test.pptx")
121
+ response = AsposeSlidesCloud::SpecUtils.api.replace_font_online(source, source_font_name, target_font_name, embed,
122
+ "password")
123
+ expect(response.size).not_to eq(source.size)
124
+ end
125
+
126
+ it "font substitution" do
127
+ folder_name = "TempSlidesSDK"
128
+ file_name = "test.pptx"
129
+ target_font_name = "Times%20New%20Roman"
130
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
131
+ font_rule1 = AsposeSlidesCloud::FontSubstRule.new
132
+ font_rule1.source_font = "Arial"
133
+ font_rule1.target_font = target_font_name
134
+ font_rule1.not_found_only = false
135
+ font_rule2 = AsposeSlidesCloud::FontSubstRule.new
136
+ font_rule2.source_font = "Calibri"
137
+ font_rule2.target_font = target_font_name
138
+ export_options = AsposeSlidesCloud::ImageExportOptions.new
139
+ export_options.font_subst_rules = [font_rule1, font_rule2]
140
+ response = AsposeSlidesCloud::SpecUtils.api.download_presentation(file_name, "PNG", export_options, "password", folder_name)
141
+ end
142
+ end
143
+ end
@@ -186,5 +186,23 @@ describe 'UseCases' do
186
186
  AsposeSlidesCloud::SpecUtils.api.delete_special_slide_animation(file_name, slide_index, AsposeSlidesCloud::SpecialSlideType::LAYOUT_SLIDE, password, folder_name)
187
187
  expect(animation.main_sequence.length).to eq(0)
188
188
  end
189
+
190
+ it "delete unused" do
191
+ folder_name = "TempSlidesSDK"
192
+ file_name = "test.pptx"
193
+ password = "password"
194
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
195
+ layout_slides_before = AsposeSlidesCloud::SpecUtils.api.get_layout_slides(file_name, password, folder_name)
196
+ expect(layout_slides_before.slide_list.length).to eq(11)
197
+ layout_slides_after = AsposeSlidesCloud::SpecUtils.api.delete_unused_layout_slides(file_name, password, folder_name)
198
+ expect(layout_slides_after.slide_list.length).to eq(2)
199
+ end
200
+
201
+ it "delete unused online" do
202
+ source = File.binread("TestData/test.pptx")
203
+ password = "password"
204
+ response = AsposeSlidesCloud::SpecUtils.api.delete_unused_layout_slides_online(source, password)
205
+ expect(response.size).not_to eq(0)
206
+ end
189
207
  end
190
208
  end
@@ -186,5 +186,21 @@ describe 'UseCases' do
186
186
  AsposeSlidesCloud::SpecUtils.api.delete_special_slide_animation(file_name, slide_index, AsposeSlidesCloud::SpecialSlideType::MASTER_SLIDE, password, folder_name)
187
187
  expect(animation.main_sequence.length).to eq(0)
188
188
  end
189
+
190
+ it "delete unused" do
191
+ folder_name = "TempSlidesSDK"
192
+ file_name = "test.pptx"
193
+ password = "password"
194
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
195
+ response = AsposeSlidesCloud::SpecUtils.api.delete_unused_master_slides(file_name, true, password, folder_name)
196
+ expect(response.slide_list.length).to eq(1)
197
+ end
198
+
199
+ it "delete unused online" do
200
+ source = File.binread("TestData/test.pptx")
201
+ password = "password"
202
+ response = AsposeSlidesCloud::SpecUtils.api.delete_unused_master_slides_online(source, true, password)
203
+ expect(response.size).not_to eq(0)
204
+ end
189
205
  end
190
206
  end
@@ -101,5 +101,26 @@ describe 'UseCases' do
101
101
  request.presentations = [ presentation1, presentation2 ]
102
102
  AsposeSlidesCloud::SpecUtils.api.merge_online(files, request)
103
103
  end
104
+
105
+ it "ordered url" do
106
+ folder_name = "TempSlidesSDK"
107
+ file_name = "test.pptx"
108
+ password = "password"
109
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
110
+
111
+ request = AsposeSlidesCloud::OrderedMergeRequest.new
112
+ presentation_to_merge1 = AsposeSlidesCloud::PresentationToMerge.new
113
+ presentation_to_merge1.slides = [1,2]
114
+ presentation_to_merge1.source = "Storage"
115
+ presentation_to_merge1.path = folder_name + "/" + file_name
116
+ presentation_to_merge1.password = password
117
+ presentation_to_merge2 = AsposeSlidesCloud::PresentationToMerge.new
118
+ presentation_to_merge2.slides = [2]
119
+ presentation_to_merge2.source = "Url"
120
+ presentation_to_merge2.path = "https://drive.google.com/uc?export=download&id=1ycMzd7e--Ro9H8eH2GL5fPP7-2HjX4My"
121
+ request.presentations = [presentation_to_merge1, presentation_to_merge2]
122
+ response = AsposeSlidesCloud::SpecUtils.api.merge_online(nil, request)
123
+ expect(response.size).not_to eq(0)
124
+ end
104
125
  end
105
126
  end