aspose_slides_cloud 22.8.0 → 22.9.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (47) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +4 -4
  3. data/README.md +11 -1
  4. data/TestData/calibri.ttf +0 -0
  5. data/TestData/test.pptx +0 -0
  6. data/docker-entrypoint.sh +3 -1
  7. data/lib/aspose_slides_cloud/api/slides_api.rb +475 -21
  8. data/lib/aspose_slides_cloud/models/bubble_chart_data_point.rb +5 -1
  9. data/lib/aspose_slides_cloud/models/data_point.rb +42 -2
  10. data/lib/aspose_slides_cloud/models/export_options.rb +13 -1
  11. data/lib/aspose_slides_cloud/models/font_subst_rule.rb +231 -0
  12. data/lib/aspose_slides_cloud/models/gif_export_options.rb +2 -1
  13. data/lib/aspose_slides_cloud/models/html5_export_options.rb +2 -1
  14. data/lib/aspose_slides_cloud/models/html_export_options.rb +2 -1
  15. data/lib/aspose_slides_cloud/models/image_export_options.rb +2 -1
  16. data/lib/aspose_slides_cloud/models/image_export_options_base.rb +2 -1
  17. data/lib/aspose_slides_cloud/models/one_value_chart_data_point.rb +5 -1
  18. data/lib/aspose_slides_cloud/models/pdf_export_options.rb +2 -1
  19. data/lib/aspose_slides_cloud/models/pptx_export_options.rb +2 -1
  20. data/lib/aspose_slides_cloud/models/scatter_chart_data_point.rb +5 -1
  21. data/lib/aspose_slides_cloud/models/svg_export_options.rb +2 -1
  22. data/lib/aspose_slides_cloud/models/swf_export_options.rb +2 -1
  23. data/lib/aspose_slides_cloud/models/tiff_export_options.rb +2 -1
  24. data/lib/aspose_slides_cloud/models/video_export_options.rb +2 -1
  25. data/lib/aspose_slides_cloud/models/xaml_export_options.rb +2 -1
  26. data/lib/aspose_slides_cloud/models/xps_export_options.rb +2 -1
  27. data/lib/aspose_slides_cloud/type_registry.rb +1 -0
  28. data/lib/aspose_slides_cloud/version.rb +1 -1
  29. data/lib/aspose_slides_cloud.rb +1 -0
  30. data/spec/api/slides_api_spec.rb +1380 -30
  31. data/spec/use_cases/chart_spec.rb +209 -0
  32. data/spec/use_cases/comment_spec.rb +159 -0
  33. data/spec/use_cases/convert_spec.rb +39 -0
  34. data/spec/use_cases/font_spec.rb +143 -0
  35. data/spec/use_cases/layout_slide_spec.rb +18 -0
  36. data/spec/use_cases/master_slide_spec.rb +16 -0
  37. data/spec/use_cases/merge_spec.rb +21 -0
  38. data/spec/use_cases/notes_slide_spec.rb +34 -0
  39. data/spec/use_cases/paragraph_spec.rb +322 -0
  40. data/spec/use_cases/portion_spec.rb +316 -0
  41. data/spec/use_cases/property_spec.rb +36 -0
  42. data/spec/use_cases/shape_spec.rb +193 -0
  43. data/spec/use_cases/slide_spec.rb +197 -0
  44. data/spec/use_cases/text_format_spec.rb +74 -0
  45. data/spec/use_cases/text_spec.rb +39 -0
  46. data/testRules.json +16 -0
  47. metadata +16 -2
@@ -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
data/testRules.json CHANGED
@@ -335,6 +335,7 @@
335
335
  { "Parameter": "Format", "Language": "Java", "Method": "Split" },
336
336
  { "Parameter": "Dto", "Method": "CreateNotesSlide" },
337
337
  { "Parameter": "DataPoint", "Language": "PHP" },
338
+ { "Parameter": "DataPoint", "Language": "Swift" },
338
339
  { "Parameter": "Dto", "Language": "Swift" },
339
340
  { "Parameter": "SlideDto", "Language": "Swift" },
340
341
  { "Parameter": "Request", "Language": "Swift" },
@@ -346,6 +347,10 @@
346
347
  { "Parameter": "Animation", "Language": "Swift" },
347
348
  { "Parameter": "Category", "Language": "Swift" },
348
349
  { "Parameter": "Series", "Language": "Swift" },
350
+ { "Parameter": "SeriesGroup", "Language": "Swift" },
351
+ { "Parameter": "Axis", "Language": "Swift" },
352
+ { "Parameter": "Legend", "Language": "Swift" },
353
+ { "Parameter": "ChartWall", "Language": "Swift" },
349
354
  { "Parameter": "Sections", "Language": "Swift" },
350
355
  { "Parameter": "Position", "Method": "MoveSlide" },
351
356
  { "Parameter": "Name", "Method": "CreatePresentation" },
@@ -486,6 +491,16 @@
486
491
  { "Message": " is out of bounds. Valid index range is between ", "Parameter": "From" },
487
492
  { "Message": " is out of bounds. Valid index range is between ", "Parameter": "To" },
488
493
  { "Message": "Invalid value for", "Parameter": "Format" },
494
+ { "Message": "input data is not valid", "Parameter": "Format", "Language": "Swift" },
495
+ { "Code": 404, "Method": "DownloadShape", "Parameter": "Format", "Language": "Swift" },
496
+ { "Code": 404, "Method": "DownloadShapeOnline", "Parameter": "Format", "Language": "Swift" },
497
+ { "Code": 404, "Method": "DownloadSubshape", "Parameter": "Format", "Language": "Swift" },
498
+ { "Code": 404, "Method": "DownloadSpecialSlideShape", "Parameter": "Format", "Language": "Swift" },
499
+ { "Code": 404, "Method": "DownloadSpecialSlideSubshape", "Parameter": "Format", "Language": "Swift" },
500
+ { "Code": 404, "Method": "SaveShape", "Parameter": "Format", "Language": "Swift" },
501
+ { "Code": 404, "Method": "SaveSubshape", "Parameter": "Format", "Language": "Swift" },
502
+ { "Code": 404, "Method": "SaveSpecialSlideShape", "Parameter": "Format", "Language": "Swift" },
503
+ { "Code": 404, "Method": "SaveSpecialSlideSubshape", "Parameter": "Format", "Language": "Swift" },
489
504
  { "Message": " is not supported", "Parameter": "OutPath" },
490
505
  { "Message": "Invalid value for ", "Parameter": "SlideType" },
491
506
  { "Message": " is out of bounds. Valid index range is between ", "Method": "CreateSpecialSlideAnimationInteractiveSequenceEffect", "Parameter": "SlideType", "Language": "NET" },
@@ -548,6 +563,7 @@
548
563
  { "Message": "The input data is not valid", "Parameter": "Image" },
549
564
  { "Message": " required parameter", "Parameter": "Image", "Method": "ImportShapesFromSvg" },
550
565
  { "Message": "Image expected", "Parameter": "Image", "Method": "CreateImageWatermark", "Language": "Python" },
566
+ { "Message": "Image expected", "Parameter": "Image", "Method": "ImportShapesFromSvg", "Language": "Python" },
551
567
  { "Message": " is out of bounds. Valid index range is between ", "Parameter": "Sections", "Method": "DeleteSections" },
552
568
  { "Message": "Layout slide DTO must be not null and contain", "Parameter": "SlideDTO", "Language": "Swift" },
553
569
  { "Message": "Object reference not set to an instance of an object.", "Parameter": "Bounds" },