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
data/spec/spec_utils.rb CHANGED
@@ -76,6 +76,8 @@ module AsposeSlidesCloud
76
76
  else
77
77
  fileName = "watermark.png"
78
78
  end
79
+ elsif name.casecmp("Font") == 0
80
+ fileName = "calibri.ttf"
79
81
  end
80
82
  return File.binread(File.join(TEST_DATA_PATH, fileName))
81
83
  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,17 @@ 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
+ shape_index = 4
149
+ sub_shape = "1"
150
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
151
+ response = AsposeSlidesCloud::SpecUtils.api.download_shape(file_name, 1, shape_index, AsposeSlidesCloud::ShapeExportFormat::PNG,
152
+ nil, nil, nil, nil, "password", folder_name, "", sub_shape)
153
+ expect(response.size).not_to eq(0)
154
+ end
155
+
145
156
  it 'shape put from storage' do
146
157
  folder_name = "TempSlidesSDK"
147
158
  file_name = "test.pptx"
@@ -150,5 +161,39 @@ describe 'UseCases' do
150
161
  AsposeSlidesCloud::SpecUtils.api.save_shape(file_name, 1, 1, AsposeSlidesCloud::ShapeExportFormat::PNG, out_path, nil, nil, nil, nil, "password", folder_name)
151
162
  expect(AsposeSlidesCloud::SpecUtils.api.object_exists(out_path).exists).to be true
152
163
  end
164
+
165
+ it 'subshape put from storage' do
166
+ folder_name = "TempSlidesSDK"
167
+ file_name = "test.pptx"
168
+ out_path = "TestData/test.png"
169
+ shape_index = 4
170
+ sub_shape = "1"
171
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
172
+ AsposeSlidesCloud::SpecUtils.api.save_shape(file_name, 1, shape_index, AsposeSlidesCloud::ShapeExportFormat::PNG,
173
+ out_path, nil, nil, nil, nil, "password", folder_name, "", sub_shape)
174
+ expect(AsposeSlidesCloud::SpecUtils.api.object_exists(out_path).exists).to be true
175
+ end
176
+
177
+ it "font fallback rules" do
178
+ font_rule1 = AsposeSlidesCloud::FontFallbackRule.new
179
+ font_rule1.range_start_index = 0x0B80
180
+ font_rule1.range_end_index = 0x0BFF
181
+ font_rule1.fallback_font_list = ["Vijaya"]
182
+
183
+ font_rule2 = AsposeSlidesCloud::FontFallbackRule.new
184
+ font_rule2.range_start_index = 0x0B80
185
+ font_rule2.range_end_index = 0x0BFF
186
+ font_rule2.fallback_font_list = ["Segoe UI Emoji", "Segoe UI Symbol", "Arial"]
187
+
188
+ font_rules = [font_rule1, font_rule2]
189
+ export_options = AsposeSlidesCloud::ImageExportOptions.new
190
+ export_options.font_fallback_rules = font_rules
191
+
192
+ folder_name = "TempSlidesSDK"
193
+ file_name = "test.pptx"
194
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
195
+ response = AsposeSlidesCloud::SpecUtils.api.download_presentation(file_name, "PNG", export_options, "password", folder_name)
196
+ expect(response.size).not_to eq(0)
197
+ end
153
198
  end
154
199
  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(nil)
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 New Roman"
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 New Roman"
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 New Roman"
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