aspose_slides_cloud 22.9.0 → 22.11.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +14 -14
- data/README.md +12 -0
- data/docker-entrypoint.sh +1 -2
- data/lib/aspose_slides_cloud/api/slides_api.rb +5327 -9036
- data/lib/aspose_slides_cloud/api_client.rb +3 -3
- data/lib/aspose_slides_cloud/configuration.rb +1 -1
- data/lib/aspose_slides_cloud/models/accent_element.rb +1 -1
- data/lib/aspose_slides_cloud/models/add_layout_slide.rb +1 -1
- data/lib/aspose_slides_cloud/models/add_master_slide.rb +1 -1
- data/lib/aspose_slides_cloud/models/add_shape.rb +1 -1
- data/lib/aspose_slides_cloud/models/add_slide.rb +1 -1
- data/lib/aspose_slides_cloud/models/alpha_bi_level_effect.rb +1 -1
- data/lib/aspose_slides_cloud/models/alpha_ceiling_effect.rb +1 -1
- data/lib/aspose_slides_cloud/models/alpha_floor_effect.rb +1 -1
- data/lib/aspose_slides_cloud/models/alpha_inverse_effect.rb +1 -1
- data/lib/aspose_slides_cloud/models/alpha_modulate_effect.rb +1 -1
- data/lib/aspose_slides_cloud/models/alpha_modulate_fixed_effect.rb +1 -1
- data/lib/aspose_slides_cloud/models/alpha_replace_effect.rb +1 -1
- data/lib/aspose_slides_cloud/models/arc_to_path_segment.rb +1 -1
- data/lib/aspose_slides_cloud/models/array_element.rb +1 -1
- data/lib/aspose_slides_cloud/models/audio_frame.rb +1 -1
- data/lib/aspose_slides_cloud/models/axis_type.rb +4 -4
- data/lib/aspose_slides_cloud/models/bar_element.rb +1 -1
- data/lib/aspose_slides_cloud/models/base64_input_file.rb +1 -1
- data/lib/aspose_slides_cloud/models/bi_level_effect.rb +1 -1
- data/lib/aspose_slides_cloud/models/block_element.rb +1 -1
- data/lib/aspose_slides_cloud/models/blur_image_effect.rb +1 -1
- data/lib/aspose_slides_cloud/models/border_box_element.rb +1 -1
- data/lib/aspose_slides_cloud/models/box_element.rb +1 -1
- data/lib/aspose_slides_cloud/models/bubble_chart_data_point.rb +14 -2
- data/lib/aspose_slides_cloud/models/bubble_series.rb +16 -3
- data/lib/aspose_slides_cloud/models/chart.rb +12 -2
- data/lib/aspose_slides_cloud/models/chart_wall_type.rb +3 -3
- data/lib/aspose_slides_cloud/models/close_path_segment.rb +1 -1
- data/lib/aspose_slides_cloud/models/color_change_effect.rb +1 -1
- data/lib/aspose_slides_cloud/models/color_replace_effect.rb +1 -1
- data/lib/aspose_slides_cloud/models/connector.rb +1 -1
- data/lib/aspose_slides_cloud/models/cubic_bezier_to_path_segment.rb +1 -1
- data/lib/aspose_slides_cloud/models/data_source.rb +244 -0
- data/lib/aspose_slides_cloud/models/delimiter_element.rb +1 -1
- data/lib/aspose_slides_cloud/models/duotone_effect.rb +1 -1
- data/lib/aspose_slides_cloud/models/effect.rb +22 -2
- data/lib/aspose_slides_cloud/models/export_format.rb +25 -25
- data/lib/aspose_slides_cloud/models/fill_overlay_image_effect.rb +1 -1
- data/lib/aspose_slides_cloud/models/fraction_element.rb +1 -1
- data/lib/aspose_slides_cloud/models/function_element.rb +1 -1
- data/lib/aspose_slides_cloud/models/gif_export_options.rb +1 -1
- data/lib/aspose_slides_cloud/models/gradient_fill.rb +1 -1
- data/lib/aspose_slides_cloud/models/graphical_object.rb +2 -2
- data/lib/aspose_slides_cloud/models/gray_scale_effect.rb +1 -1
- data/lib/aspose_slides_cloud/models/group_shape.rb +1 -1
- data/lib/aspose_slides_cloud/models/grouping_character_element.rb +1 -1
- data/lib/aspose_slides_cloud/models/hsl_effect.rb +1 -1
- data/lib/aspose_slides_cloud/models/html5_export_options.rb +1 -1
- data/lib/aspose_slides_cloud/models/html_export_options.rb +1 -1
- data/lib/aspose_slides_cloud/models/image_export_format.rb +5 -5
- data/lib/aspose_slides_cloud/models/image_export_options.rb +1 -1
- data/lib/aspose_slides_cloud/models/left_sub_superscript_element.rb +1 -1
- data/lib/aspose_slides_cloud/models/limit_element.rb +1 -1
- data/lib/aspose_slides_cloud/models/line_to_path_segment.rb +1 -1
- data/lib/aspose_slides_cloud/models/literals.rb +223 -0
- data/lib/aspose_slides_cloud/models/luminance_effect.rb +1 -1
- data/lib/aspose_slides_cloud/models/matrix_element.rb +1 -1
- data/lib/aspose_slides_cloud/models/merge.rb +1 -1
- data/lib/aspose_slides_cloud/models/move_to_path_segment.rb +1 -1
- data/lib/aspose_slides_cloud/models/nary_operator_element.rb +1 -1
- data/lib/aspose_slides_cloud/models/no_fill.rb +1 -1
- data/lib/aspose_slides_cloud/models/notes_slide_export_format.rb +23 -23
- data/lib/aspose_slides_cloud/models/ole_object_frame.rb +1 -1
- data/lib/aspose_slides_cloud/models/one_value_chart_data_point.rb +11 -1
- data/lib/aspose_slides_cloud/models/one_value_series.rb +13 -2
- data/lib/aspose_slides_cloud/models/path_input_file.rb +1 -1
- data/lib/aspose_slides_cloud/models/path_output_file.rb +1 -1
- data/lib/aspose_slides_cloud/models/pattern_fill.rb +1 -1
- data/lib/aspose_slides_cloud/models/pdf_export_options.rb +1 -1
- data/lib/aspose_slides_cloud/models/picture_fill.rb +1 -1
- data/lib/aspose_slides_cloud/models/picture_frame.rb +1 -1
- data/lib/aspose_slides_cloud/models/pptx_export_options.rb +1 -1
- data/lib/aspose_slides_cloud/models/quadratic_bezier_to_path_segment.rb +1 -1
- data/lib/aspose_slides_cloud/models/radical_element.rb +1 -1
- data/lib/aspose_slides_cloud/models/remove_shape.rb +1 -1
- data/lib/aspose_slides_cloud/models/remove_slide.rb +1 -1
- data/lib/aspose_slides_cloud/models/reorder_slide.rb +1 -1
- data/lib/aspose_slides_cloud/models/replace_text.rb +1 -1
- data/lib/aspose_slides_cloud/models/request_input_file.rb +1 -1
- data/lib/aspose_slides_cloud/models/reset_slide.rb +1 -1
- data/lib/aspose_slides_cloud/models/response_output_file.rb +1 -1
- data/lib/aspose_slides_cloud/models/right_sub_superscript_element.rb +1 -1
- data/lib/aspose_slides_cloud/models/save.rb +1 -1
- data/lib/aspose_slides_cloud/models/save_shape.rb +1 -1
- data/lib/aspose_slides_cloud/models/save_slide.rb +1 -1
- data/lib/aspose_slides_cloud/models/scatter_chart_data_point.rb +22 -2
- data/lib/aspose_slides_cloud/models/scatter_series.rb +5 -2
- data/lib/aspose_slides_cloud/models/section_zoom_frame.rb +1 -1
- data/lib/aspose_slides_cloud/models/series.rb +11 -1
- data/lib/aspose_slides_cloud/models/shape.rb +1 -1
- data/lib/aspose_slides_cloud/models/shape_export_format.rb +6 -6
- data/lib/aspose_slides_cloud/models/shape_thumbnail_bounds.rb +3 -3
- data/lib/aspose_slides_cloud/models/shape_type.rb +16 -16
- data/lib/aspose_slides_cloud/models/shapes_alignment_type.rb +8 -8
- data/lib/aspose_slides_cloud/models/slide_comment.rb +1 -1
- data/lib/aspose_slides_cloud/models/slide_export_format.rb +23 -23
- data/lib/aspose_slides_cloud/models/slide_modern_comment.rb +1 -1
- data/lib/aspose_slides_cloud/models/slide_show_properties.rb +325 -0
- data/lib/aspose_slides_cloud/models/smart_art.rb +1 -1
- data/lib/aspose_slides_cloud/models/smart_art_shape.rb +1 -1
- data/lib/aspose_slides_cloud/models/solid_fill.rb +1 -1
- data/lib/aspose_slides_cloud/models/special_slide_type.rb +3 -3
- data/lib/aspose_slides_cloud/models/subscript_element.rb +1 -1
- data/lib/aspose_slides_cloud/models/summary_zoom_frame.rb +1 -1
- data/lib/aspose_slides_cloud/models/summary_zoom_section.rb +1 -1
- data/lib/aspose_slides_cloud/models/superscript_element.rb +1 -1
- data/lib/aspose_slides_cloud/models/svg_export_options.rb +23 -3
- data/lib/aspose_slides_cloud/models/swf_export_options.rb +1 -1
- data/lib/aspose_slides_cloud/models/table.rb +1 -1
- data/lib/aspose_slides_cloud/models/text_element.rb +1 -1
- data/lib/aspose_slides_cloud/models/tiff_export_options.rb +1 -1
- data/lib/aspose_slides_cloud/models/tint_effect.rb +1 -1
- data/lib/aspose_slides_cloud/models/update_background.rb +1 -1
- data/lib/aspose_slides_cloud/models/update_shape.rb +1 -1
- data/lib/aspose_slides_cloud/models/video_export_options.rb +1 -1
- data/lib/aspose_slides_cloud/models/video_frame.rb +1 -1
- data/lib/aspose_slides_cloud/models/workbook.rb +268 -0
- data/lib/aspose_slides_cloud/models/xaml_export_options.rb +1 -1
- data/lib/aspose_slides_cloud/models/xps_export_options.rb +1 -1
- data/lib/aspose_slides_cloud/models/xy_series.rb +23 -2
- data/lib/aspose_slides_cloud/models/zoom_frame.rb +1 -1
- data/lib/aspose_slides_cloud/type_registry.rb +189 -182
- data/lib/aspose_slides_cloud/version.rb +1 -1
- data/lib/aspose_slides_cloud.rb +124 -120
- data/spec/api/slides_api_spec.rb +23387 -34153
- data/spec/spec_utils.rb +88 -49
- data/spec/use_cases/chart_spec.rb +160 -1
- data/spec/use_cases/convert_spec.rb +8 -2
- data/spec/use_cases/font_spec.rb +4 -4
- data/spec/use_cases/nullable_field_spec.rb +7 -0
- data/spec/use_cases/paragraph_spec.rb +30 -22
- data/spec/use_cases/portion_spec.rb +31 -23
- data/spec/use_cases/property_spec.rb +23 -0
- data/spec/use_cases/shape_spec.rb +22 -18
- data/testRules.json +138 -513
- metadata +6 -2
data/spec/spec_utils.rb
CHANGED
@@ -45,11 +45,11 @@ module AsposeSlidesCloud
|
|
45
45
|
end
|
46
46
|
files = Hash.new
|
47
47
|
SpecUtils.test_rules["Files"].each do |rule|
|
48
|
-
if SpecUtils.good_rule?(rule, name, method)
|
49
|
-
actual_name = SpecUtils.untemplatize(rule["File"], value)
|
48
|
+
if SpecUtils.good_rule?(rule, name, method, nil)
|
49
|
+
actual_name = SpecUtils.untemplatize(rule["File"], name, value)
|
50
50
|
path = "TempSlidesSDK"
|
51
51
|
if rule.key?("Folder")
|
52
|
-
path = SpecUtils.untemplatize(rule["Folder"], value)
|
52
|
+
path = SpecUtils.untemplatize(rule["Folder"], name, value)
|
53
53
|
end
|
54
54
|
path = path + "/" + actual_name
|
55
55
|
files[path] = rule
|
@@ -61,68 +61,41 @@ module AsposeSlidesCloud
|
|
61
61
|
SpecUtils.api.copy_file("TempTests/" + rule['ActualName'], path)
|
62
62
|
elsif rule["Action"] == "Delete"
|
63
63
|
SpecUtils.api.delete_file(path)
|
64
|
+
SpecUtils.api.delete_folder(path)
|
64
65
|
end
|
65
66
|
end
|
66
67
|
end
|
67
68
|
|
68
69
|
def self.get_param_value(name, method, type)
|
69
|
-
|
70
|
-
fileName = "test.pptx"
|
71
|
-
if method.casecmp("ImportFromPdf") == 0
|
72
|
-
fileName = "test.pdf"
|
73
|
-
elsif name.casecmp("Image") == 0
|
74
|
-
if method.casecmp("ImportShapesFromSvg") == 0
|
75
|
-
fileName = "shapes.svg"
|
76
|
-
else
|
77
|
-
fileName = "watermark.png"
|
78
|
-
end
|
79
|
-
end
|
80
|
-
return File.binread(File.join(TEST_DATA_PATH, fileName))
|
81
|
-
end
|
82
|
-
if type == 'File[]'
|
83
|
-
files = []
|
84
|
-
files.push(File.binread(File.join(AsposeSlidesCloud::SpecUtils::TEST_DATA_PATH, "test.pptx")))
|
85
|
-
files.push(File.binread(File.join(AsposeSlidesCloud::SpecUtils::TEST_DATA_PATH, "test-unprotected.pptx")))
|
86
|
-
return files
|
87
|
-
end
|
88
|
-
value = "test" + name
|
70
|
+
value = nil
|
89
71
|
SpecUtils.test_rules["Values"].each do |rule|
|
90
|
-
if SpecUtils.good_rule?(rule, name, method) and rule.key?("Value")
|
91
|
-
|
92
|
-
if TypeRegistry.subclass?(rule["Type"], type)
|
93
|
-
value = rule["Value"]
|
94
|
-
end
|
95
|
-
else
|
96
|
-
value = rule["Value"]
|
97
|
-
end
|
72
|
+
if SpecUtils.good_rule?(rule, name, method, type) and rule.key?("Value")
|
73
|
+
value = rule["Value"]
|
98
74
|
end
|
99
75
|
end
|
100
|
-
value
|
76
|
+
SpecUtils.untemplatize(value, name, nil)
|
101
77
|
end
|
102
78
|
|
103
79
|
def self.invalidize_param_value(name, method, value, type)
|
104
|
-
if type == 'File'
|
105
|
-
return nil
|
106
|
-
end
|
107
80
|
invalid_value = nil
|
108
81
|
SpecUtils.test_rules["Values"].each do |rule|
|
109
|
-
if SpecUtils.good_rule?(rule, name, method) and rule.key?("InvalidValue")
|
82
|
+
if SpecUtils.good_rule?(rule, name, method, type) and rule.key?("InvalidValue")
|
110
83
|
invalid_value = rule["InvalidValue"]
|
111
84
|
end
|
112
85
|
end
|
113
|
-
SpecUtils.untemplatize(invalid_value, value)
|
86
|
+
SpecUtils.untemplatize(invalid_value, name, value)
|
114
87
|
end
|
115
88
|
|
116
|
-
def self.get_expected_error(method, name, value)
|
89
|
+
def self.get_expected_error(method, name, value, type)
|
117
90
|
code = 0
|
118
91
|
message = "Unexpeceted message"
|
119
92
|
SpecUtils.test_rules["Results"].each do |rule|
|
120
|
-
if SpecUtils.good_rule?(rule, name, method)
|
93
|
+
if SpecUtils.good_rule?(rule, name, method, type)
|
121
94
|
if rule.key?("Code")
|
122
95
|
code = rule["Code"]
|
123
96
|
end
|
124
97
|
if rule.key?("Message")
|
125
|
-
message = SpecUtils.untemplatize(rule["Message"], value)
|
98
|
+
message = SpecUtils.untemplatize(rule["Message"], name, value)
|
126
99
|
end
|
127
100
|
end
|
128
101
|
end
|
@@ -136,30 +109,95 @@ module AsposeSlidesCloud
|
|
136
109
|
return false
|
137
110
|
end
|
138
111
|
|
139
|
-
def self.good_rule?(rule, name, method)
|
140
|
-
|
112
|
+
def self.good_rule?(rule, name, method, type)
|
113
|
+
SpecUtils.good_rule_key?(rule, "Language", "Ruby") \
|
141
114
|
and (not rule.key?("Invalid") or ((name != nil) == rule["Invalid"])) \
|
142
|
-
and
|
143
|
-
and
|
115
|
+
and SpecUtils.good_rule_key?(rule, "Parameter", name) \
|
116
|
+
and SpecUtils.good_rule_key?(rule, "Method", method) \
|
117
|
+
and SpecUtils.good_rule_type?(rule, type)
|
118
|
+
end
|
119
|
+
|
120
|
+
def self.good_rule_key?(rule, key, value)
|
121
|
+
if not rule.key?(key)
|
122
|
+
return true
|
123
|
+
end
|
124
|
+
if not value
|
125
|
+
return false
|
126
|
+
end
|
127
|
+
if rule[key].start_with?("/") and rule[key].end_with?("/")
|
128
|
+
return value =~ /#{rule[key][1..-2]}/i
|
129
|
+
end
|
130
|
+
return rule[key].casecmp(value) == 0
|
131
|
+
end
|
132
|
+
|
133
|
+
def self.good_rule_type?(rule, type)
|
134
|
+
if not rule.key?("Type")
|
135
|
+
return true
|
136
|
+
end
|
137
|
+
if not type
|
138
|
+
return false
|
139
|
+
end
|
140
|
+
if rule["Type"] == "bool"
|
141
|
+
return type == "BOOLEAN"
|
142
|
+
end
|
143
|
+
if rule["Type"] == "number"
|
144
|
+
return type == "Integer"
|
145
|
+
end
|
146
|
+
if rule["Type"] == "int"
|
147
|
+
return type == "Integer"
|
148
|
+
end
|
149
|
+
if rule["Type"] == "int[]"
|
150
|
+
return type == "Integer[]"
|
151
|
+
end
|
152
|
+
if rule["Type"] == "stream"
|
153
|
+
return type == "File"
|
154
|
+
end
|
155
|
+
if rule["Type"] == "stream[]"
|
156
|
+
return type == "File[]"
|
157
|
+
end
|
158
|
+
if rule["Type"] == "model"
|
159
|
+
return !TypeRegistry.type_determiners[type.to_sym].nil?
|
160
|
+
end
|
161
|
+
if !TypeRegistry.type_determiners[rule["Type"].to_sym].nil?
|
162
|
+
return TypeRegistry.subclass?(rule["Type"], type)
|
163
|
+
end
|
164
|
+
return false
|
144
165
|
end
|
145
166
|
|
146
|
-
def self.untemplatize(template, value)
|
167
|
+
def self.untemplatize(template, name, value)
|
147
168
|
if template == nil
|
148
169
|
value
|
149
170
|
else
|
150
171
|
result = template
|
151
|
-
if template.is_a? String
|
172
|
+
if template.is_a? String
|
152
173
|
result = "" + template
|
153
|
-
if
|
154
|
-
result[
|
174
|
+
if template.start_with?("@")
|
175
|
+
file_name = result[1..-1]
|
176
|
+
if file_name.start_with?("(") and file_name.end_with?(")")
|
177
|
+
result = file_name[1..-2].split(",").map {|f| File.binread(File.join(AsposeSlidesCloud::SpecUtils::TEST_DATA_PATH, f)) }
|
178
|
+
else
|
179
|
+
result = File.binread(File.join(AsposeSlidesCloud::SpecUtils::TEST_DATA_PATH, file_name))
|
180
|
+
end
|
155
181
|
else
|
156
|
-
result
|
182
|
+
result = SpecUtils.replace(result, "%n", name)
|
183
|
+
result = SpecUtils.replace(result, "%v", value)
|
157
184
|
end
|
158
185
|
end
|
159
186
|
result
|
160
187
|
end
|
161
188
|
end
|
162
189
|
|
190
|
+
def self.replace(template, oldValue, newValue)
|
191
|
+
if template.match(oldValue)
|
192
|
+
if newValue != nil
|
193
|
+
template[oldValue] = newValue.to_s
|
194
|
+
else
|
195
|
+
template[oldValue] = ""
|
196
|
+
end
|
197
|
+
end
|
198
|
+
template
|
199
|
+
end
|
200
|
+
|
163
201
|
def self.test_rules
|
164
202
|
unless @@test_rules
|
165
203
|
@@test_rules = JSON.parse(File.read('testRules.json'))
|
@@ -178,6 +216,7 @@ module AsposeSlidesCloud
|
|
178
216
|
configuration.app_sid = config["ClientId"]
|
179
217
|
configuration.app_key = config["ClientSecret"]
|
180
218
|
configuration.debugging = config["Debug"]
|
219
|
+
configuration.verify_ssl = !config["AllowInsecureRequests"]
|
181
220
|
@@api = AsposeSlidesCloud::SlidesApi.new(configuration)
|
182
221
|
end
|
183
222
|
@@api
|
@@ -33,7 +33,7 @@ describe 'UseCases' do
|
|
33
33
|
expect(chart.categories.length).to eq(4)
|
34
34
|
end
|
35
35
|
|
36
|
-
it 'create' do
|
36
|
+
it 'create chart auto data source' do
|
37
37
|
folder_name = "TempSlidesSDK"
|
38
38
|
file_name = "test.pptx"
|
39
39
|
AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
|
@@ -72,6 +72,118 @@ describe 'UseCases' do
|
|
72
72
|
expect(result.categories.length).to eq(3)
|
73
73
|
end
|
74
74
|
|
75
|
+
it 'create chart workbook data source' do
|
76
|
+
folder_name = "TempSlidesSDK"
|
77
|
+
file_name = "test.pptx"
|
78
|
+
AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
|
79
|
+
chart = AsposeSlidesCloud::Chart.new
|
80
|
+
chart.chart_type = 'ClusteredColumn'
|
81
|
+
chart.width = 400
|
82
|
+
chart.height = 300
|
83
|
+
|
84
|
+
data_source_for_categories = AsposeSlidesCloud::Workbook.new
|
85
|
+
data_source_for_categories.worksheet_index = 0
|
86
|
+
data_source_for_categories.column_index = 0
|
87
|
+
data_source_for_categories.row_index = 1
|
88
|
+
chart.data_source_for_categories = data_source_for_categories
|
89
|
+
|
90
|
+
series1 = AsposeSlidesCloud::OneValueSeries.new
|
91
|
+
data_source_for_series1_name = AsposeSlidesCloud::Workbook.new
|
92
|
+
data_source_for_series1_name.worksheet_index = 0
|
93
|
+
data_source_for_series1_name.column_index = 1
|
94
|
+
data_source_for_series1_name.row_index = 0
|
95
|
+
series1.data_source_for_series_name = data_source_for_series1_name
|
96
|
+
series1.name = "Series1"
|
97
|
+
data_source_for_series1_values = AsposeSlidesCloud::Workbook.new
|
98
|
+
data_source_for_series1_values.worksheet_index = 0
|
99
|
+
data_source_for_series1_values.column_index = 1
|
100
|
+
data_source_for_series1_values.row_index = 1
|
101
|
+
series1.data_source_for_values = data_source_for_series1_values
|
102
|
+
point11 = AsposeSlidesCloud::OneValueChartDataPoint.new
|
103
|
+
point11.value = 40
|
104
|
+
point12 = AsposeSlidesCloud::OneValueChartDataPoint.new
|
105
|
+
point12.value = 50
|
106
|
+
point13 = AsposeSlidesCloud::OneValueChartDataPoint.new
|
107
|
+
point13.value = 70
|
108
|
+
series1.data_points = [point11, point12, point13]
|
109
|
+
series2 = AsposeSlidesCloud::OneValueSeries.new
|
110
|
+
data_source_for_series2_name = AsposeSlidesCloud::Workbook.new
|
111
|
+
data_source_for_series2_name.worksheet_index = 0
|
112
|
+
data_source_for_series2_name.column_index = 2
|
113
|
+
data_source_for_series2_name.row_index = 0
|
114
|
+
series2.data_source_for_series_name = data_source_for_series2_name
|
115
|
+
series2.name = "Series2"
|
116
|
+
data_source_for_series2_values = AsposeSlidesCloud::Workbook.new
|
117
|
+
data_source_for_series2_values.worksheet_index = 0
|
118
|
+
data_source_for_series2_values.column_index = 2
|
119
|
+
data_source_for_series2_values.row_index = 1
|
120
|
+
series2.data_source_for_values = data_source_for_series2_values
|
121
|
+
point21 = AsposeSlidesCloud::OneValueChartDataPoint.new
|
122
|
+
point21.value = 55
|
123
|
+
point22 = AsposeSlidesCloud::OneValueChartDataPoint.new
|
124
|
+
point22.value = 35
|
125
|
+
point23 = AsposeSlidesCloud::OneValueChartDataPoint.new
|
126
|
+
point23.value = 90
|
127
|
+
series2.data_points = [point21, point22, point23]
|
128
|
+
chart.series = [ series1, series2 ]
|
129
|
+
category1 = AsposeSlidesCloud::ChartCategory.new
|
130
|
+
category1.value = "Category1"
|
131
|
+
category2 = AsposeSlidesCloud::ChartCategory.new
|
132
|
+
category2.value = "Category2"
|
133
|
+
category3 = AsposeSlidesCloud::ChartCategory.new
|
134
|
+
category3.value = "Category3"
|
135
|
+
chart.categories = [category1, category2, category3]
|
136
|
+
result = AsposeSlidesCloud::SpecUtils.api.create_shape(file_name, 3, chart, nil, nil, "password", folder_name)
|
137
|
+
expect(result.series.length).to eq(2)
|
138
|
+
expect(result.categories.length).to eq(3)
|
139
|
+
end
|
140
|
+
|
141
|
+
it 'create chart literals' do
|
142
|
+
folder_name = "TempSlidesSDK"
|
143
|
+
file_name = "test.pptx"
|
144
|
+
AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
|
145
|
+
chart = AsposeSlidesCloud::Chart.new
|
146
|
+
chart.chart_type = 'ClusteredColumn'
|
147
|
+
chart.width = 400
|
148
|
+
chart.height = 300
|
149
|
+
|
150
|
+
chart.data_source_for_categories = AsposeSlidesCloud::Literals.new
|
151
|
+
|
152
|
+
series1 = AsposeSlidesCloud::OneValueSeries.new
|
153
|
+
series1.data_source_for_series_name = AsposeSlidesCloud::Literals.new
|
154
|
+
series1.name = "Series1"
|
155
|
+
series1.data_source_for_values = AsposeSlidesCloud::Literals.new
|
156
|
+
point11 = AsposeSlidesCloud::OneValueChartDataPoint.new
|
157
|
+
point11.value = 40
|
158
|
+
point12 = AsposeSlidesCloud::OneValueChartDataPoint.new
|
159
|
+
point12.value = 50
|
160
|
+
point13 = AsposeSlidesCloud::OneValueChartDataPoint.new
|
161
|
+
point13.value = 70
|
162
|
+
series1.data_points = [point11, point12, point13]
|
163
|
+
series2 = AsposeSlidesCloud::OneValueSeries.new
|
164
|
+
series2.data_source_for_series_name = AsposeSlidesCloud::Workbook.new
|
165
|
+
series2.name = "Series2"
|
166
|
+
series2.data_source_for_values = AsposeSlidesCloud::Workbook.new
|
167
|
+
point21 = AsposeSlidesCloud::OneValueChartDataPoint.new
|
168
|
+
point21.value = 55
|
169
|
+
point22 = AsposeSlidesCloud::OneValueChartDataPoint.new
|
170
|
+
point22.value = 35
|
171
|
+
point23 = AsposeSlidesCloud::OneValueChartDataPoint.new
|
172
|
+
point23.value = 90
|
173
|
+
series2.data_points = [point21, point22, point23]
|
174
|
+
chart.series = [ series1, series2 ]
|
175
|
+
category1 = AsposeSlidesCloud::ChartCategory.new
|
176
|
+
category1.value = "Category1"
|
177
|
+
category2 = AsposeSlidesCloud::ChartCategory.new
|
178
|
+
category2.value = "Category2"
|
179
|
+
category3 = AsposeSlidesCloud::ChartCategory.new
|
180
|
+
category3.value = "Category3"
|
181
|
+
chart.categories = [category1, category2, category3]
|
182
|
+
result = AsposeSlidesCloud::SpecUtils.api.create_shape(file_name, 3, chart, nil, nil, "password", folder_name)
|
183
|
+
expect(result.series.length).to eq(2)
|
184
|
+
expect(result.categories.length).to eq(3)
|
185
|
+
end
|
186
|
+
|
75
187
|
it 'update' do
|
76
188
|
folder_name = "TempSlidesSDK"
|
77
189
|
file_name = "test.pptx"
|
@@ -496,5 +608,52 @@ describe 'UseCases' do
|
|
496
608
|
expect(data_point.line_format.fill_format.type).to eq("Solid")
|
497
609
|
expect(data_point.effect_format.blur).not_to eq(nil)
|
498
610
|
end
|
611
|
+
|
612
|
+
it 'chart formulas' do
|
613
|
+
folder_name = "TempSlidesSDK"
|
614
|
+
file_name = "test.pptx"
|
615
|
+
AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
|
616
|
+
chart = AsposeSlidesCloud::Chart.new
|
617
|
+
chart.chart_type = 'ClusteredColumn'
|
618
|
+
chart.width = 400
|
619
|
+
chart.height = 300
|
620
|
+
|
621
|
+
data_source_for_categories = AsposeSlidesCloud::Workbook.new
|
622
|
+
data_source_for_categories.worksheet_index = 0
|
623
|
+
data_source_for_categories.column_index = 0
|
624
|
+
data_source_for_categories.row_index = 1
|
625
|
+
chart.data_source_for_categories = data_source_for_categories
|
626
|
+
|
627
|
+
series1 = AsposeSlidesCloud::OneValueSeries.new
|
628
|
+
data_source_for_series1_name = AsposeSlidesCloud::Workbook.new
|
629
|
+
data_source_for_series1_name.worksheet_index = 0
|
630
|
+
data_source_for_series1_name.column_index = 1
|
631
|
+
data_source_for_series1_name.row_index = 0
|
632
|
+
series1.data_source_for_series_name = data_source_for_series1_name
|
633
|
+
series1.name = "Series1"
|
634
|
+
data_source_for_series1_values = AsposeSlidesCloud::Workbook.new
|
635
|
+
data_source_for_series1_values.worksheet_index = 0
|
636
|
+
data_source_for_series1_values.column_index = 1
|
637
|
+
data_source_for_series1_values.row_index = 1
|
638
|
+
series1.data_source_for_values = data_source_for_series1_values
|
639
|
+
point11 = AsposeSlidesCloud::OneValueChartDataPoint.new
|
640
|
+
point11.value = 40
|
641
|
+
point12 = AsposeSlidesCloud::OneValueChartDataPoint.new
|
642
|
+
point12.value = 50
|
643
|
+
point13 = AsposeSlidesCloud::OneValueChartDataPoint.new
|
644
|
+
point13.value = 0
|
645
|
+
point13.value_formula = "SUM(B2:B3)"
|
646
|
+
series1.data_points = [point11, point12, point13]
|
647
|
+
chart.series = [ series1 ]
|
648
|
+
category1 = AsposeSlidesCloud::ChartCategory.new
|
649
|
+
category1.value = "Category1"
|
650
|
+
category2 = AsposeSlidesCloud::ChartCategory.new
|
651
|
+
category2.value = "Category2"
|
652
|
+
category3 = AsposeSlidesCloud::ChartCategory.new
|
653
|
+
category3.value = "Category3"
|
654
|
+
chart.categories = [category1, category2, category3]
|
655
|
+
result = AsposeSlidesCloud::SpecUtils.api.create_shape(file_name, 3, chart, nil, nil, "password", folder_name)
|
656
|
+
expect(result.series[0].data_points[2].value).to eq(90)
|
657
|
+
end
|
499
658
|
end
|
500
659
|
end
|
@@ -145,8 +145,11 @@ describe 'UseCases' do
|
|
145
145
|
it 'subshape post from storage' do
|
146
146
|
folder_name = "TempSlidesSDK"
|
147
147
|
file_name = "test.pptx"
|
148
|
+
shape_index = 4
|
149
|
+
sub_shape = "1"
|
148
150
|
AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
|
149
|
-
response = AsposeSlidesCloud::SpecUtils.api.
|
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)
|
150
153
|
expect(response.size).not_to eq(0)
|
151
154
|
end
|
152
155
|
|
@@ -163,8 +166,11 @@ describe 'UseCases' do
|
|
163
166
|
folder_name = "TempSlidesSDK"
|
164
167
|
file_name = "test.pptx"
|
165
168
|
out_path = "TestData/test.png"
|
169
|
+
shape_index = 4
|
170
|
+
sub_shape = "1"
|
166
171
|
AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
|
167
|
-
AsposeSlidesCloud::SpecUtils.api.
|
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)
|
168
174
|
expect(AsposeSlidesCloud::SpecUtils.api.object_exists(out_path).exists).to be true
|
169
175
|
end
|
170
176
|
|
data/spec/use_cases/font_spec.rb
CHANGED
@@ -86,7 +86,7 @@ describe 'UseCases' do
|
|
86
86
|
response = AsposeSlidesCloud::SpecUtils.api.set_embedded_font(file_name, font_name, false, "password", folder_name)
|
87
87
|
expect(response.list[2].is_embedded).to eq(true)
|
88
88
|
response = AsposeSlidesCloud::SpecUtils.api.delete_embedded_font(file_name, font_name, "password", folder_name)
|
89
|
-
expect(response.list[2].is_embedded).to eq(
|
89
|
+
expect(response.list[2].is_embedded).to eq(nil)
|
90
90
|
end
|
91
91
|
|
92
92
|
it "delete embedded font online" do
|
@@ -102,7 +102,7 @@ describe 'UseCases' do
|
|
102
102
|
folder_name = "TempSlidesSDK"
|
103
103
|
file_name = "test.pptx"
|
104
104
|
source_font_name = "Calibri"
|
105
|
-
target_font_name = "Times
|
105
|
+
target_font_name = "Times New Roman"
|
106
106
|
embed = true
|
107
107
|
AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
|
108
108
|
response = AsposeSlidesCloud::SpecUtils.api.replace_font(file_name, source_font_name, target_font_name, embed,
|
@@ -115,7 +115,7 @@ describe 'UseCases' do
|
|
115
115
|
folder_name = "TempSlidesSDK"
|
116
116
|
file_name = "test.pptx"
|
117
117
|
source_font_name = "Calibri"
|
118
|
-
target_font_name = "Times
|
118
|
+
target_font_name = "Times New Roman"
|
119
119
|
embed = true
|
120
120
|
source = File.binread("TestData/test.pptx")
|
121
121
|
response = AsposeSlidesCloud::SpecUtils.api.replace_font_online(source, source_font_name, target_font_name, embed,
|
@@ -126,7 +126,7 @@ describe 'UseCases' do
|
|
126
126
|
it "font substitution" do
|
127
127
|
folder_name = "TempSlidesSDK"
|
128
128
|
file_name = "test.pptx"
|
129
|
-
target_font_name = "Times
|
129
|
+
target_font_name = "Times New Roman"
|
130
130
|
AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
|
131
131
|
font_rule1 = AsposeSlidesCloud::FontSubstRule.new
|
132
132
|
font_rule1.source_font = "Arial"
|
@@ -42,6 +42,13 @@ describe 'UseCases' do
|
|
42
42
|
dto.title = AsposeSlidesCloud::ChartTitle.new
|
43
43
|
dto.title.has_title = true
|
44
44
|
dto.title.text = "MyTitle"
|
45
|
+
|
46
|
+
category1 = AsposeSlidesCloud::ChartCategory.new
|
47
|
+
category1.value = "Category1"
|
48
|
+
category2 = AsposeSlidesCloud::ChartCategory.new
|
49
|
+
category2.value = "Category2"
|
50
|
+
dto.categories = [ category1, category2 ]
|
51
|
+
|
45
52
|
dto.series = []
|
46
53
|
dto.series.push(AsposeSlidesCloud::OneValueSeries.new)
|
47
54
|
dto.series[0].type = "ClusteredColumn"
|
@@ -53,10 +53,11 @@ describe 'UseCases' do
|
|
53
53
|
file_name = "test.pptx"
|
54
54
|
password = "password"
|
55
55
|
slide_index = 6
|
56
|
-
shape_index =
|
56
|
+
shape_index = 3
|
57
|
+
sub_shape = "1"
|
57
58
|
paragraph_index = 1
|
58
59
|
AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
|
59
|
-
response = AsposeSlidesCloud::SpecUtils.api.
|
60
|
+
response = AsposeSlidesCloud::SpecUtils.api.get_paragraph(file_name, slide_index, shape_index, paragraph_index, password, folder_name, "", sub_shape)
|
60
61
|
expect(response.portion_list.length).to eq(2)
|
61
62
|
end
|
62
63
|
|
@@ -65,9 +66,10 @@ describe 'UseCases' do
|
|
65
66
|
file_name = "test.pptx"
|
66
67
|
password = "password"
|
67
68
|
slide_index = 6
|
68
|
-
shape_index =
|
69
|
+
shape_index = 3
|
70
|
+
sub_shape = "1"
|
69
71
|
AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
|
70
|
-
response = AsposeSlidesCloud::SpecUtils.api.
|
72
|
+
response = AsposeSlidesCloud::SpecUtils.api.get_paragraphs(file_name, slide_index, shape_index, password, folder_name, "", sub_shape)
|
71
73
|
expect(response.paragraph_links.length).to eq(2)
|
72
74
|
end
|
73
75
|
|
@@ -104,7 +106,7 @@ describe 'UseCases' do
|
|
104
106
|
portion2 = AsposeSlidesCloud::Portion.new
|
105
107
|
portion2.text = "Portion2"
|
106
108
|
portion2.font_bold = "True"
|
107
|
-
dto.
|
109
|
+
dto.portion_list = [portion1, portion2]
|
108
110
|
|
109
111
|
response = AsposeSlidesCloud::SpecUtils.api.create_paragraph(file_name, slide_index, shape_index, dto, nil, password, folder_name)
|
110
112
|
expect(response.portion_list.length).to eq(2)
|
@@ -115,7 +117,8 @@ describe 'UseCases' do
|
|
115
117
|
file_name = "test.pptx"
|
116
118
|
password = "password"
|
117
119
|
slide_index = 6
|
118
|
-
shape_index =
|
120
|
+
shape_index = 3
|
121
|
+
sub_shape = "1"
|
119
122
|
AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
|
120
123
|
|
121
124
|
dto = AsposeSlidesCloud::Paragraph.new
|
@@ -123,7 +126,7 @@ describe 'UseCases' do
|
|
123
126
|
dto.margin_right = 2
|
124
127
|
dto.alignment = "Center"
|
125
128
|
|
126
|
-
response = AsposeSlidesCloud::SpecUtils.api.
|
129
|
+
response = AsposeSlidesCloud::SpecUtils.api.create_paragraph(file_name, slide_index, shape_index, dto, nil, password, folder_name, "", sub_shape)
|
127
130
|
expect(response.margin_left).to eq(dto.margin_left)
|
128
131
|
expect(response.margin_right).to eq(dto.margin_right)
|
129
132
|
expect(response.alignment).to eq(dto.alignment)
|
@@ -155,7 +158,8 @@ describe 'UseCases' do
|
|
155
158
|
file_name = "test.pptx"
|
156
159
|
password = "password"
|
157
160
|
slide_index = 6
|
158
|
-
shape_index =
|
161
|
+
shape_index = 3
|
162
|
+
sub_shape = "1"
|
159
163
|
paragraph_index = 1
|
160
164
|
AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
|
161
165
|
|
@@ -164,8 +168,8 @@ describe 'UseCases' do
|
|
164
168
|
dto.margin_right = 2
|
165
169
|
dto.alignment = "Center"
|
166
170
|
|
167
|
-
response = AsposeSlidesCloud::SpecUtils.api.
|
168
|
-
paragraph_index, dto, password, folder_name)
|
171
|
+
response = AsposeSlidesCloud::SpecUtils.api.update_paragraph(file_name, slide_index, shape_index,
|
172
|
+
paragraph_index, dto, password, folder_name, "", sub_shape)
|
169
173
|
expect(response.margin_left).to eq(dto.margin_left)
|
170
174
|
expect(response.margin_right).to eq(dto.margin_right)
|
171
175
|
expect(response.alignment).to eq(dto.alignment)
|
@@ -202,11 +206,12 @@ describe 'UseCases' do
|
|
202
206
|
file_name = "test.pptx"
|
203
207
|
password = "password"
|
204
208
|
slide_index = 6
|
205
|
-
shape_index =
|
209
|
+
shape_index = 3
|
210
|
+
sub_shape = "1"
|
206
211
|
AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
|
207
212
|
|
208
|
-
response = AsposeSlidesCloud::SpecUtils.api.
|
209
|
-
password, folder_name)
|
213
|
+
response = AsposeSlidesCloud::SpecUtils.api.delete_paragraphs(file_name, slide_index, shape_index, nil,
|
214
|
+
password, folder_name, "", sub_shape)
|
210
215
|
expect(response.paragraph_links.length).to eq(0)
|
211
216
|
end
|
212
217
|
|
@@ -215,11 +220,12 @@ describe 'UseCases' do
|
|
215
220
|
file_name = "test.pptx"
|
216
221
|
password = "password"
|
217
222
|
slide_index = 6
|
218
|
-
shape_index =
|
223
|
+
shape_index = 3
|
224
|
+
sub_shape = "1"
|
219
225
|
AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
|
220
226
|
|
221
|
-
response = AsposeSlidesCloud::SpecUtils.api.
|
222
|
-
password, folder_name)
|
227
|
+
response = AsposeSlidesCloud::SpecUtils.api.delete_paragraphs(file_name, slide_index, shape_index, [1],
|
228
|
+
password, folder_name, "", sub_shape)
|
223
229
|
expect(response.paragraph_links.length).to eq(1)
|
224
230
|
end
|
225
231
|
|
@@ -242,12 +248,13 @@ describe 'UseCases' do
|
|
242
248
|
file_name = "test.pptx"
|
243
249
|
password = "password"
|
244
250
|
slide_index = 6
|
245
|
-
shape_index =
|
251
|
+
shape_index = 3
|
252
|
+
sub_shape = "1"
|
246
253
|
paragraph_index = 1
|
247
254
|
AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
|
248
255
|
|
249
|
-
response = AsposeSlidesCloud::SpecUtils.api.
|
250
|
-
password, folder_name)
|
256
|
+
response = AsposeSlidesCloud::SpecUtils.api.delete_paragraph(file_name, slide_index, shape_index, paragraph_index,
|
257
|
+
password, folder_name, "", sub_shape)
|
251
258
|
expect(response.paragraph_links.length).to eq(1)
|
252
259
|
end
|
253
260
|
|
@@ -311,11 +318,12 @@ describe 'UseCases' do
|
|
311
318
|
file_name = "test.pptx"
|
312
319
|
password = "password"
|
313
320
|
slide_index = 6
|
314
|
-
shape_index =
|
321
|
+
shape_index = 3
|
322
|
+
sub_shape = "1"
|
315
323
|
paragraph_index = 1
|
316
324
|
AsposeSlidesCloud::SpecUtils.api.copy_file("TempTests/" + file_name, folder_name + "/" + file_name)
|
317
|
-
response = AsposeSlidesCloud::SpecUtils.api.
|
318
|
-
password, folder_name)
|
325
|
+
response = AsposeSlidesCloud::SpecUtils.api.get_paragraph_effective(file_name, slide_index, shape_index, paragraph_index,
|
326
|
+
password, folder_name, "", sub_shape)
|
319
327
|
expect(response.default_tab_size).to eq(72)
|
320
328
|
end
|
321
329
|
end
|