summaryrefslogtreecommitdiff
path: root/sc/qa/unit/subsequent_export-test.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'sc/qa/unit/subsequent_export-test.cxx')
-rw-r--r--sc/qa/unit/subsequent_export-test.cxx31
1 files changed, 31 insertions, 0 deletions
diff --git a/sc/qa/unit/subsequent_export-test.cxx b/sc/qa/unit/subsequent_export-test.cxx
index fe7e9636c06c..673f415b5c88 100644
--- a/sc/qa/unit/subsequent_export-test.cxx
+++ b/sc/qa/unit/subsequent_export-test.cxx
@@ -34,6 +34,7 @@
#include "scitems.hxx"
#include "document.hxx"
#include "cellform.hxx"
+#include "tabprotection.hxx"
#define ODS_FORMAT_TYPE 50331943
#define XLS_FORMAT_TYPE 318767171
@@ -78,6 +79,7 @@ public:
void testPasswordExport();
void testConditionalFormatExportXLSX();
void testMiscRowHeightExport();
+ void testSheetProtectionXLSX();
void testNamedRangeBugfdo62729();
CPPUNIT_TEST_SUITE(ScExportTest);
@@ -88,6 +90,7 @@ public:
CPPUNIT_TEST(testConditionalFormatExportXLSX);
CPPUNIT_TEST(testMiscRowHeightExport);
CPPUNIT_TEST(testNamedRangeBugfdo62729);
+ CPPUNIT_TEST(testSheetProtectionXLSX);
CPPUNIT_TEST_SUITE_END();
private:
@@ -401,6 +404,34 @@ void ScExportTest::testNamedRangeBugfdo62729()
xDocSh->DoClose();
}
+void ScExportTest::testSheetProtectionXLSX()
+{
+ ScDocShellRef xShell = loadDocument("ProtecteSheet1234Pass.", XLSX);
+ CPPUNIT_ASSERT(xShell.Is());
+
+ ScDocShellRef xDocSh = saveAndReload(xShell, XLSX);
+ CPPUNIT_ASSERT(xDocSh.Is());
+
+ ScDocument* pDoc = xDocSh->GetDocument();
+ CPPUNIT_ASSERT(pDoc);
+ const ScTableProtection* pTabProtect = pDoc->GetTabProtection(0);
+ CPPUNIT_ASSERT(pTabProtect);
+ if ( pTabProtect )
+ {
+ Sequence<sal_Int8> aHash = pTabProtect->getPasswordHash(PASSHASH_XL);
+ // check has
+ if (aHash.getLength() >= 2)
+ {
+ CPPUNIT_ASSERT( (sal_uInt8)aHash[0] == 204 );
+ CPPUNIT_ASSERT( (sal_uInt8)aHash[1] == 61 );
+ }
+ // we could flesh out this check I guess
+ CPPUNIT_ASSERT ( pTabProtect->isOptionEnabled( ScTableProtection::OBJECTS ) );
+ CPPUNIT_ASSERT ( pTabProtect->isOptionEnabled( ScTableProtection::SCENARIOS ) );
+ }
+ xDocSh->DoClose();
+}
+
ScExportTest::ScExportTest()
: m_aBaseString(RTL_CONSTASCII_USTRINGPARAM("/sc/qa/unit/data"))
{