summaryrefslogtreecommitdiffstats
path: root/t
diff options
context:
space:
mode:
authorAlexey Mazurin <mazurin.alexey@gmail.com>2015-03-19 10:21:25 +0400
committerAlexey Mazurin <mazurin.alexey@gmail.com>2015-03-19 10:21:25 +0400
commit51c7608a44671076096db3ce40b3710fb8affc37 (patch)
tree5ae8727f63b68b8e1e900c9bfed2f03fe614d9dc /t
parentb21bb3d2136f8dd01283e6078c462678ce07d2f5 (diff)
downloadspreadsheet-parsexlsx-51c7608a44671076096db3ce40b3710fb8affc37.tar.gz
spreadsheet-parsexlsx-51c7608a44671076096db3ce40b3710fb8affc37.zip
Support of encrypted xlsx files
Added support for reading encrypted xlsx files in accordance with [MS-OFFCRYPTO]: Office Document Cryptography Structure https://msdn.microsoft.com/en-us/library/cc313071(v=office.12).aspx Support of standard and agile encryption modified: lib/Spreadsheet/ParseXLSX.pm new file: t/data/encryption-agile-123q.xlsx new file: t/data/encryption-standard-default-password.xlsx new file: t/encryption.t
Diffstat (limited to 't')
-rw-r--r--t/data/encryption-agile-123q.xlsxbin0 -> 13312 bytes
-rw-r--r--t/data/encryption-standard-default-password.xlsxbin0 -> 12288 bytes
-rw-r--r--t/encryption.t30
3 files changed, 30 insertions, 0 deletions
diff --git a/t/data/encryption-agile-123q.xlsx b/t/data/encryption-agile-123q.xlsx
new file mode 100644
index 0000000..be3b561
--- /dev/null
+++ b/t/data/encryption-agile-123q.xlsx
Binary files differ
diff --git a/t/data/encryption-standard-default-password.xlsx b/t/data/encryption-standard-default-password.xlsx
new file mode 100644
index 0000000..a863c1b
--- /dev/null
+++ b/t/data/encryption-standard-default-password.xlsx
Binary files differ
diff --git a/t/encryption.t b/t/encryption.t
new file mode 100644
index 0000000..6def0f4
--- /dev/null
+++ b/t/encryption.t
@@ -0,0 +1,30 @@
+#!/usr/bin/env perl
+use strict;
+use warnings;
+use Test::More;
+
+use lib::Spreadsheet::ParseXLSX;
+
+my $parser = Spreadsheet::ParseXLSX->new();
+my $workbook = $parser->parse("t/data/encryption-agile-123q.xlsx", {password => '123q'});
+
+my $worksheet;
+my $cell;
+
+$worksheet = $workbook->worksheet(0);
+ok(defined($workbook));
+
+$cell = $worksheet->get_cell(1, 1);
+ok(defined($cell) && $cell->value() eq 'abcdefgABCDEFG');
+
+
+open FH, "t/data/encryption-standard-default-password.xlsx";
+$workbook = $parser->parse(\*FH);
+
+ok(defined($workbook));
+
+$worksheet = $workbook->worksheet(0);
+$cell = $worksheet->get_cell(22, 8);
+ok(defined($cell) && $cell->value() == 1911);
+
+done_testing;