crypt_test.go 1.4 KB
Newer Older
xurime's avatar
xurime 已提交
1
// Copyright 2016 - 2021 The excelize Authors. All rights reserved. Use of
xurime's avatar
xurime 已提交
2 3 4 5
// 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
xurime's avatar
xurime 已提交
6 7 8 9 10
// 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.
xurime's avatar
xurime 已提交
11 12 13 14 15 16 17 18 19 20 21 22 23

package excelize

import (
	"path/filepath"
	"testing"

	"github.com/stretchr/testify/assert"
)

func TestEncrypt(t *testing.T) {
	f, err := OpenFile(filepath.Join("test", "encryptSHA1.xlsx"), Options{Password: "password"})
	assert.NoError(t, err)
24
	assert.EqualError(t, f.SaveAs(filepath.Join("test", "BadEncrypt.xlsx"), Options{Password: "password"}), ErrEncrypt.Error())
25
	assert.NoError(t, f.Close())
xurime's avatar
xurime 已提交
26
}
27 28 29 30

func TestEncryptionMechanism(t *testing.T) {
	mechanism, err := encryptionMechanism([]byte{3, 0, 3, 0})
	assert.Equal(t, mechanism, "extensible")
31
	assert.EqualError(t, err, ErrUnsupportEncryptMechanism.Error())
32
	_, err = encryptionMechanism([]byte{})
33
	assert.EqualError(t, err, ErrUnknownEncryptMechanism.Error())
34 35 36 37 38
}

func TestHashing(t *testing.T) {
	assert.Equal(t, hashing("unsupportHashAlgorithm", []byte{}), []uint8([]byte(nil)))
}