2022-01-09 00:20:42 +08:00
// Copyright 2016 - 2022 The excelize Authors. All rights reserved. Use of
2019-12-22 00:02:09 +08:00
// this source code is governed by a BSD-style license that can be found in
// the LICENSE file.
//
// Package excelize providing a set of functions that allow you to write to
2021-08-15 00:06:40 +08:00
// and read from XLSX / XLSM / XLTM files. Supports reading and writing
// spreadsheet documents generated by Microsoft Excel™ 2007 and later. Supports
// complex components by high compatibility, and provided streaming API for
// generating or reading data from a worksheet with huge amounts of data. This
// library needs Go version 1.15 or later.
2019-12-22 00:02:09 +08:00
package excelize
import (
"path/filepath"
"strings"
"testing"
"github.com/stretchr/testify/assert"
)
func TestAddComments ( t * testing . T ) {
f , err := prepareTestBook1 ( )
if ! assert . NoError ( t , err ) {
t . FailNow ( )
}
s := strings . Repeat ( "c" , 32768 )
assert . NoError ( t , f . AddComment ( "Sheet1" , "A30" , ` { "author":" ` + s + ` ","text":" ` + s + ` "} ` ) )
assert . NoError ( t , f . AddComment ( "Sheet2" , "B7" , ` { "author":"Excelize: ","text":"This is a comment."} ` ) )
// Test add comment on not exists worksheet.
assert . EqualError ( t , f . AddComment ( "SheetN" , "B7" , ` { "author":"Excelize: ","text":"This is a comment."} ` ) , "sheet SheetN is not exist" )
2020-03-31 00:02:00 +08:00
// Test add comment on with illegal cell coordinates
2021-12-07 00:26:53 +08:00
assert . EqualError ( t , f . AddComment ( "Sheet1" , "A" , ` { "author":"Excelize: ","text":"This is a comment."} ` ) , newCellNameToCoordinatesError ( "A" , newInvalidCellNameError ( "A" ) ) . Error ( ) )
2019-12-22 00:02:09 +08:00
if assert . NoError ( t , f . SaveAs ( filepath . Join ( "test" , "TestAddComments.xlsx" ) ) ) {
assert . Len ( t , f . GetComments ( ) , 2 )
}
2020-03-31 00:02:00 +08:00
f . Comments [ "xl/comments2.xml" ] = nil
2021-07-05 00:03:56 +08:00
f . Pkg . Store ( "xl/comments2.xml" , [ ] byte ( ` <?xml version="1.0" encoding="UTF-8" standalone="yes"?><comments xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main"><authors><author>Excelize: </author></authors><commentList><comment ref="B7" authorId="0"><text><t>Excelize: </t></text></comment></commentList></comments> ` ) )
2020-03-31 00:02:00 +08:00
comments := f . GetComments ( )
assert . EqualValues ( t , 2 , len ( comments [ "Sheet1" ] ) )
assert . EqualValues ( t , 1 , len ( comments [ "Sheet2" ] ) )
2021-04-26 22:51:35 +08:00
assert . EqualValues ( t , len ( NewFile ( ) . GetComments ( ) ) , 0 )
2019-12-22 00:02:09 +08:00
}
func TestDecodeVMLDrawingReader ( t * testing . T ) {
f := NewFile ( )
path := "xl/drawings/vmlDrawing1.xml"
2021-07-05 00:03:56 +08:00
f . Pkg . Store ( path , MacintoshCyrillicCharset )
2019-12-22 00:02:09 +08:00
f . decodeVMLDrawingReader ( path )
}
func TestCommentsReader ( t * testing . T ) {
f := NewFile ( )
path := "xl/comments1.xml"
2021-07-05 00:03:56 +08:00
f . Pkg . Store ( path , MacintoshCyrillicCharset )
2019-12-22 00:02:09 +08:00
f . commentsReader ( path )
}
func TestCountComments ( t * testing . T ) {
f := NewFile ( )
f . Comments [ "xl/comments1.xml" ] = nil
assert . Equal ( t , f . countComments ( ) , 1 )
}