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
@@ -165,7 +165,7 @@ describe 'UseCases' do
165
165
  dto.read_password = "newPassword"
166
166
  source = File.binread("TestData/test.pptx")
167
167
  result = AsposeSlidesCloud::SpecUtils.api.set_protection_online(source, dto, "password")
168
- expect(result.size).not_to eq(source.size)
168
+ expect(result.size).to be > 0
169
169
  end
170
170
 
171
171
  it 'protection unprotect online' do
@@ -173,5 +173,41 @@ 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
176
212
  end
177
213
  end
@@ -393,5 +393,198 @@ 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
+ shape = AsposeSlidesCloud::SpecUtils.api.create_shape(file_name, slide_index, dto, nil, nil, password, folder_name)
410
+ expect(shape).to be_kind_of(AsposeSlidesCloud::ZoomFrame)
411
+ expect(shape.target_slide_index).to eq(2)
412
+ end
413
+
414
+ it "section zoom frame add" do
415
+ folder_name = "TempSlidesSDK"
416
+ file_name = "test.pptx"
417
+ slide_index = 3
418
+ password = "password"
419
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
420
+ dto = AsposeSlidesCloud::SectionZoomFrame.new
421
+ dto.x = 20
422
+ dto.y = 20
423
+ dto.width = 200
424
+ dto.height = 100
425
+ dto.target_section_index = 2
426
+ shape = AsposeSlidesCloud::SpecUtils.api.create_shape(file_name, slide_index, dto, nil, nil, password, folder_name)
427
+ expect(shape).to be_kind_of(AsposeSlidesCloud::SectionZoomFrame)
428
+ expect(shape.target_section_index).to eq(2)
429
+ end
430
+
431
+ it "ole object frame add by link" do
432
+ folder_name = "TempSlidesSDK"
433
+ file_name = "test.pptx"
434
+ slide_index = 3
435
+ password = "password"
436
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
437
+ dto = AsposeSlidesCloud::OleObjectFrame.new
438
+ dto.x = 20
439
+ dto.y = 20
440
+ dto.width = 200
441
+ dto.height = 200
442
+ dto.link_path = "oleObject.xlsx"
443
+ dto.object_prog_id = "Excel.Sheet.8"
444
+ shape = AsposeSlidesCloud::SpecUtils.api.create_shape(file_name, slide_index, dto, nil, nil, password, folder_name)
445
+ expect(shape).to be_kind_of(AsposeSlidesCloud::OleObjectFrame)
446
+ expect(shape.link_path).to eq(dto.link_path)
447
+ end
448
+
449
+ it "ole object frame add embedded" do
450
+ folder_name = "TempSlidesSDK"
451
+ file_name = "test.pptx"
452
+ slide_index = 3
453
+ password = "password"
454
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
455
+ source = File.binread("TestData/oleObject.xlsx")
456
+
457
+ dto = AsposeSlidesCloud::OleObjectFrame.new
458
+ dto.x = 20
459
+ dto.y = 20
460
+ dto.width = 200
461
+ dto.height = 200
462
+ dto.embedded_file_extension = "xlsx"
463
+ dto.embedded_file_base64_data = Base64.encode64(source)
464
+
465
+ shape = AsposeSlidesCloud::SpecUtils.api.create_shape(file_name, slide_index, dto, nil, nil, password, folder_name)
466
+ expect(shape).to be_kind_of(AsposeSlidesCloud::OleObjectFrame)
467
+ expect(shape.embedded_file_base64_data).not_to eq(nil)
468
+ end
469
+
470
+ it "group shape add" do
471
+ folder_name = "TempSlidesSDK"
472
+ file_name = "test.pptx"
473
+ slide_index = 5
474
+ password = "password"
475
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
476
+ shapes = AsposeSlidesCloud::SpecUtils.api.get_shapes(file_name, slide_index, password, folder_name)
477
+ expect(shapes.shapes_links.length).to eq(0)
478
+
479
+ group_shape = AsposeSlidesCloud::GroupShape.new
480
+ AsposeSlidesCloud::SpecUtils.api.create_shape(file_name, slide_index, group_shape, nil, nil, password, folder_name)
481
+
482
+ shape1 = AsposeSlidesCloud::Shape.new
483
+ shape1.shape_type = "Rectangle"
484
+ shape1.x = 50
485
+ shape1.y = 400
486
+ shape1.width = 50
487
+ shape1.height = 50
488
+ shape2 = AsposeSlidesCloud::Shape.new
489
+ shape2.shape_type = "Ellipse"
490
+ shape2.x = 150
491
+ shape2.y = 400
492
+ shape2.width = 50
493
+ shape2.height = 50
494
+ shape3 = AsposeSlidesCloud::Shape.new
495
+ shape3.shape_type = "Triangle"
496
+ shape3.x = 250
497
+ shape3.y = 400
498
+ shape3.width = 50
499
+ shape3.height = 50
500
+
501
+ AsposeSlidesCloud::SpecUtils.api.create_subshape(file_name, slide_index, "1/shapes", shape1, nil, nil, password, folder_name)
502
+ AsposeSlidesCloud::SpecUtils.api.create_subshape(file_name, slide_index, "1/shapes", shape2, nil, nil, password, folder_name)
503
+ AsposeSlidesCloud::SpecUtils.api.create_subshape(file_name, slide_index, "1/shapes", shape3, nil, nil, password, folder_name)
504
+
505
+ shapes = AsposeSlidesCloud::SpecUtils.api.get_shapes(file_name, slide_index, password, folder_name)
506
+ expect(shapes.shapes_links.length).to eq(1)
507
+ shapes = AsposeSlidesCloud::SpecUtils.api.get_subshapes(file_name, slide_index, "1/shapes", password, folder_name)
508
+ expect(shapes.shapes_links.length).to eq(3)
509
+ end
510
+
511
+ it "import shapes from SVG" do
512
+ folder_name = "TempSlidesSDK"
513
+ file_name = "test.pptx"
514
+ slide_index = 5
515
+ password = "password"
516
+ source = File.binread("TestData/shapes.svg")
517
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
518
+ response = AsposeSlidesCloud::SpecUtils.api.import_shapes_from_svg(file_name, slide_index, source, 50, 50, 300, 300,
519
+ [1,3,5], false, password, folder_name)
520
+ expect(response.shapes_links.length).to eq(3)
521
+ end
522
+
523
+ it "create smart art node" do
524
+ folder_name = "TempSlidesSDK"
525
+ file_name = "test.pptx"
526
+ slide_index = 7
527
+ smart_art_index = 1
528
+ new_node_text = "New-root-node"
529
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
530
+ response = AsposeSlidesCloud::SpecUtils.api.create_smart_art_node(file_name, slide_index, smart_art_index, nil, new_node_text,
531
+ nil, "password", folder_name)
532
+ expect(response.nodes.length).to eq(2)
533
+ expect(response.nodes[1].text).to eq(new_node_text)
534
+ end
535
+
536
+ it "create smart art sub node" do
537
+ folder_name = "TempSlidesSDK"
538
+ file_name = "test.pptx"
539
+ slide_index = 7
540
+ smart_art_index = 1
541
+ sub_node_path = "1"
542
+ position = 1
543
+ new_node_text = "New-sub-node"
544
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
545
+ response = AsposeSlidesCloud::SpecUtils.api.create_smart_art_node(file_name, slide_index, smart_art_index, sub_node_path,
546
+ new_node_text, position, "password", folder_name)
547
+ expect(response.nodes[0].nodes.length).to eq(5)
548
+ expect(response.nodes[0].nodes[0].text).to eq(new_node_text)
549
+ end
550
+
551
+ it "create smart art sub sub node" do
552
+ folder_name = "TempSlidesSDK"
553
+ file_name = "test.pptx"
554
+ slide_index = 7
555
+ smart_art_index = 1
556
+ sub_node_path = "1/nodes/1"
557
+ new_node_text = "New-sub-sub-node"
558
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
559
+ response = AsposeSlidesCloud::SpecUtils.api.create_smart_art_node(file_name, slide_index, smart_art_index, sub_node_path,
560
+ new_node_text, nil, "password", folder_name)
561
+ expect(response.nodes[0].nodes[0].nodes.length).to eq(1)
562
+ expect(response.nodes[0].nodes[0].nodes[0].text).to eq(new_node_text)
563
+ end
564
+
565
+ it "delete smart art node" do
566
+ folder_name = "TempSlidesSDK"
567
+ file_name = "test.pptx"
568
+ slide_index = 7
569
+ smart_art_index = 2
570
+ node_index = 1
571
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
572
+ response = AsposeSlidesCloud::SpecUtils.api.delete_smart_art_node(file_name, slide_index, smart_art_index, node_index, nil,
573
+ "password", folder_name)
574
+ expect(response.nodes.length).to eq(2)
575
+ end
576
+
577
+ it "delete smart art sub node" do
578
+ folder_name = "TempSlidesSDK"
579
+ file_name = "test.pptx"
580
+ slide_index = 7
581
+ smart_art_index = 1
582
+ node_index = 1
583
+ sub_node_path = "2"
584
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
585
+ response = AsposeSlidesCloud::SpecUtils.api.delete_smart_art_node(file_name, slide_index, smart_art_index, node_index,
586
+ sub_node_path, "password", folder_name)
587
+ expect(response.nodes[0].nodes.length).to eq(3)
588
+ end
396
589
  end
397
590
  end
@@ -0,0 +1,197 @@
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 'Slide' do
27
+ it "get slides" do
28
+ folder_name = "TempSlidesSDK"
29
+ file_name = "test.pptx"
30
+ password = "password"
31
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
32
+ slides = AsposeSlidesCloud::SpecUtils.api.get_slides(file_name, password, folder_name)
33
+ expect(slides.slide_list.length).to eq(8)
34
+ end
35
+
36
+ it "get slide" do
37
+ folder_name = "TempSlidesSDK"
38
+ file_name = "test.pptx"
39
+ password = "password"
40
+ slide_index = 1
41
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
42
+ slide = AsposeSlidesCloud::SpecUtils.api.get_slides(file_name, password, folder_name)
43
+ expect(slide).not_to eq(nil)
44
+ end
45
+
46
+ it "create slide" do
47
+ folder_name = "TempSlidesSDK"
48
+ file_name = "test.pptx"
49
+ password = "password"
50
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
51
+
52
+ slides = AsposeSlidesCloud::SpecUtils.api.create_slide(file_name, "layoutSlides/3", 1, password, folder_name)
53
+ expect(slides.slide_list.length).to eq(9)
54
+ slides = AsposeSlidesCloud::SpecUtils.api.create_slide(file_name, "layoutSlides/3", nil, password, folder_name)
55
+ expect(slides.slide_list.length).to eq(10)
56
+ end
57
+
58
+ it "copy slide" do
59
+ folder_name = "TempSlidesSDK"
60
+ file_name = "test.pptx"
61
+ password = "password"
62
+ slide_index = 3
63
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
64
+ slides = AsposeSlidesCloud::SpecUtils.api.copy_slide(file_name, slide_index, nil, nil, nil, nil, password, folder_name)
65
+ expect(slides.slide_list.length).to eq(9)
66
+ end
67
+
68
+ it "copy slide from source" do
69
+ folder_name = "TempSlidesSDK"
70
+ file_name = "test.pptx"
71
+ source_file_name = "TemplateCV.pptx"
72
+ password = "password"
73
+ slide_index = 1
74
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
75
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + source_file_name, folder_name + "/" + source_file_name)
76
+
77
+ slides = AsposeSlidesCloud::SpecUtils.api.copy_slide(file_name, slide_index, 1, folder_name + "/" + source_file_name,
78
+ nil, nil, password, folder_name)
79
+ expect(slides.slide_list.length).to eq(9)
80
+ end
81
+
82
+ it "move slide" do
83
+ folder_name = "TempSlidesSDK"
84
+ file_name = "test.pptx"
85
+ password = "password"
86
+ slide_index = 1
87
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
88
+ slides = AsposeSlidesCloud::SpecUtils.api.move_slide(file_name, slide_index, 2, password, folder_name)
89
+ expect(slides.slide_list.length).to eq(8)
90
+ end
91
+
92
+ it "reorder slides" do
93
+ folder_name = "TempSlidesSDK"
94
+ file_name = "test.pptx"
95
+ password = "password"
96
+ old_positions = [1,2,3,4,5,6]
97
+ new_positions = [6,5,4,3,2,1]
98
+
99
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
100
+ slides = AsposeSlidesCloud::SpecUtils.api.reorder_slides(file_name, old_positions, new_positions, password, folder_name)
101
+ expect(slides.slide_list.length).to eq(8)
102
+ end
103
+
104
+ it "update slide" do
105
+ folder_name = "TempSlidesSDK"
106
+ file_name = "test.pptx"
107
+ password = "password"
108
+ layout_slide_href = "layoutSlides/3"
109
+ slide_index = 1
110
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
111
+
112
+ dto = AsposeSlidesCloud::Slide.new
113
+ dto.layout_slide = AsposeSlidesCloud::ResourceUri.new
114
+ dto.layout_slide.href = layout_slide_href
115
+
116
+ slide = AsposeSlidesCloud::SpecUtils.api.update_slide(file_name, slide_index, dto, password, folder_name)
117
+ expect(slide.layout_slide.href.include? layout_slide_href).to eq(true)
118
+ end
119
+
120
+ it "delete slides" do
121
+ folder_name = "TempSlidesSDK"
122
+ file_name = "test.pptx"
123
+ password = "password"
124
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
125
+ slides = AsposeSlidesCloud::SpecUtils.api.delete_slides(file_name, nil, password, folder_name)
126
+ expect(slides.slide_list.length).to eq(1)
127
+ end
128
+
129
+ it "delete slides indexes" do
130
+ folder_name = "TempSlidesSDK"
131
+ file_name = "test.pptx"
132
+ password = "password"
133
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
134
+ slides = AsposeSlidesCloud::SpecUtils.api.delete_slides(file_name, [1,3,5], password, folder_name)
135
+ expect(slides.slide_list.length).to eq(5)
136
+ end
137
+
138
+ it "delete slide" do
139
+ folder_name = "TempSlidesSDK"
140
+ file_name = "test.pptx"
141
+ password = "password"
142
+ slide_index = 1
143
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
144
+ slides = AsposeSlidesCloud::SpecUtils.api.delete_slide(file_name, slide_index, password, folder_name)
145
+ expect(slides.slide_list.length).to eq(7)
146
+ end
147
+
148
+ it "get background" do
149
+ folder_name = "TempSlidesSDK"
150
+ file_name = "test.pptx"
151
+ password = "password"
152
+ slide_index = 5
153
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
154
+ response = AsposeSlidesCloud::SpecUtils.api.get_background(file_name, slide_index, password, folder_name)
155
+ expect(response.fill_format).to be_kind_of(AsposeSlidesCloud::SolidFill)
156
+ end
157
+
158
+ it "set background" do
159
+ folder_name = "TempSlidesSDK"
160
+ file_name = "test.pptx"
161
+ password = "password"
162
+ slide_index = 1
163
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
164
+ dto = AsposeSlidesCloud::SlideBackground.new
165
+ dto.fill_format = AsposeSlidesCloud::SolidFill.new
166
+ dto.fill_format.color = "#FFF5FF8A"
167
+
168
+ response = AsposeSlidesCloud::SpecUtils.api.set_background(file_name, slide_index, dto, password, folder_name)
169
+ expect(response.fill_format).to be_kind_of(AsposeSlidesCloud::SolidFill)
170
+ expect(response.fill_format.color).to eq(dto.fill_format.color)
171
+ end
172
+
173
+ it "set background color" do
174
+ folder_name = "TempSlidesSDK"
175
+ file_name = "test.pptx"
176
+ password = "password"
177
+ slide_index = 1
178
+ color = "#FFF5FF8A"
179
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
180
+
181
+ response = AsposeSlidesCloud::SpecUtils.api.set_background_color(file_name, slide_index, color, password, folder_name)
182
+ expect(response.fill_format).to be_kind_of(AsposeSlidesCloud::SolidFill)
183
+ expect(response.fill_format.color).to eq(color)
184
+ end
185
+
186
+ it "delete background color" do
187
+ folder_name = "TempSlidesSDK"
188
+ file_name = "test.pptx"
189
+ password = "password"
190
+ slide_index = 5
191
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
192
+
193
+ response = AsposeSlidesCloud::SpecUtils.api.delete_background(file_name, slide_index, password, folder_name)
194
+ expect(response.fill_format).to be_kind_of(AsposeSlidesCloud::NoFill)
195
+ end
196
+ end
197
+ end
@@ -0,0 +1,74 @@
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 'Text format' do
27
+ it "text format 3d" do
28
+ folder_name = "TempSlidesSDK"
29
+ file_name = "test.pptx"
30
+ password = "password"
31
+ slide_index = 1
32
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
33
+
34
+ dto = AsposeSlidesCloud::Shape.new
35
+ dto.shape_type = "Rectangle"
36
+ dto.x = 100
37
+ dto.y = 100
38
+ dto.height = 100
39
+ dto.width = 200
40
+ dto.text = "Sample text"
41
+
42
+ dto.text_frame_format = AsposeSlidesCloud::TextFrameFormat.new
43
+ dto.text_frame_format.transform = "ArchUpPour"
44
+
45
+ threeDFormat = AsposeSlidesCloud::ThreeDFormat.new
46
+ threeDFormat.bevel_bottom = AsposeSlidesCloud::ShapeBevel.new
47
+ threeDFormat.bevel_bottom.bevel_type = "Circle"
48
+ threeDFormat.bevel_bottom.height = 3.5
49
+ threeDFormat.bevel_bottom.width = 3.5
50
+ threeDFormat.bevel_top = AsposeSlidesCloud::ShapeBevel.new
51
+ threeDFormat.bevel_top.bevel_type = "Circle"
52
+ threeDFormat.bevel_top.height = 4
53
+ threeDFormat.bevel_top.width = 4
54
+ threeDFormat.extrusion_color = "#FF008000"
55
+ threeDFormat.extrusion_height = 6
56
+ threeDFormat.contour_color = "#FF25353D"
57
+ threeDFormat.contour_width = 1.5
58
+ threeDFormat.depth = 3
59
+ threeDFormat.material = "Plastic"
60
+ threeDFormat.light_rig = AsposeSlidesCloud::LightRig.new
61
+ #threeDFormat.light_rig.light_type = "Balanced"
62
+ threeDFormat.light_rig.direction = "Top"
63
+ threeDFormat.light_rig.x_rotation = 0
64
+ threeDFormat.light_rig.y_rotation = 0
65
+ threeDFormat.light_rig.z_rotation = 40
66
+ #threeDFormat.camera = AsposeSlidesCloud::Camera.new
67
+ #threeDFormat.camera_type = "PerspectiveContrastingRightFacing"
68
+ dto.text_frame_format.three_d_format = threeDFormat;
69
+
70
+ result = AsposeSlidesCloud::SpecUtils.api.create_shape(file_name, slide_index, dto, nil, nil, password, folder_name)
71
+ expect(result).to be_kind_of(AsposeSlidesCloud::Shape)
72
+ end
73
+ end
74
+ end
@@ -70,5 +70,44 @@ describe 'UseCases' do
70
70
  AsposeSlidesCloud::SpecUtils.api.replace_slide_text_online(source, slide_index, old_value, new_value, nil, password)
71
71
  AsposeSlidesCloud::SpecUtils.api.replace_slide_text_online(source, slide_index, old_value, new_value, true, password)
72
72
  end
73
+
74
+ it "highlight shape text" do
75
+ folder_name = "TempSlidesSDK"
76
+ file_name = "test.pptx"
77
+ password = "password"
78
+ slide_index = 6
79
+ shape_index = 1
80
+ paragraph_index = 1
81
+ highlight_color = "#FFF5FF8A"
82
+ text_to_highlight = "highlight"
83
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
84
+ AsposeSlidesCloud::SpecUtils.api.highlight_shape_text(file_name, slide_index, shape_index, text_to_highlight, highlight_color,
85
+ nil, false, password, folder_name)
86
+ para = AsposeSlidesCloud::SpecUtils.api.get_paragraph(file_name, slide_index, shape_index, paragraph_index, password, folder_name)
87
+ expect(para.portion_list[0].text).not_to eq(text_to_highlight)
88
+ expect(para.portion_list[0].highlight_color).not_to eq(highlight_color)
89
+ expect(para.portion_list[1].text).to eq(text_to_highlight)
90
+ expect(para.portion_list[1].highlight_color).to eq(highlight_color)
91
+ end
92
+
93
+ it "highlight shape regex" do
94
+ folder_name = "TempSlidesSDK"
95
+ file_name = "test.pptx"
96
+ password = "password"
97
+ slide_index = 6
98
+ shape_index = 1
99
+ paragraph_index = 1
100
+ text_to_highlight = "highlight"
101
+ highlight_color = "#FFF5FF8A"
102
+ regex = "h.ghl[abci]ght"
103
+ AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
104
+ AsposeSlidesCloud::SpecUtils.api.highlight_shape_regex(file_name, slide_index, shape_index, regex, highlight_color,
105
+ nil, false, password, folder_name)
106
+ para = AsposeSlidesCloud::SpecUtils.api.get_paragraph(file_name, slide_index, shape_index, paragraph_index, password, folder_name)
107
+ expect(para.portion_list[0].text).not_to eq(text_to_highlight)
108
+ expect(para.portion_list[0].highlight_color).not_to eq(highlight_color)
109
+ expect(para.portion_list[1].text).to eq(text_to_highlight)
110
+ expect(para.portion_list[1].highlight_color).to eq(highlight_color)
111
+ end
73
112
  end
74
113
  end