From 3d7b9c03c3be4372c0a91fb60d126f976945fb1f Mon Sep 17 00:00:00 2001
From: Sebastian Mayr <sebmaster16@gmail.com>
Date: Sat, 18 May 2013 02:12:10 +0200
Subject: [PATCH] Add new tests, cleanup

---
 .gitignore               |  1 +
 Makefile                 |  3 +++
 package.json             |  3 ++-
 tests/Common.js          | 25 +++++++++++++++++++++++++
 tests/EncodedSpec.js     |  8 ++++++++
 tests/FormulaSpec.js     |  9 +++++++++
 tests/InterviewSpec.js   |  8 ++++++++
 tests/IssueSpec.js       |  8 ++++++++
 tests/MixedSpec.js       |  8 ++++++++
 tests/NamedRangesSpec.js |  8 ++++++++
 10 files changed, 80 insertions(+), 1 deletion(-)
 create mode 100644 .gitignore
 create mode 100644 tests/Common.js
 create mode 100644 tests/EncodedSpec.js
 create mode 100644 tests/FormulaSpec.js
 create mode 100644 tests/InterviewSpec.js
 create mode 100644 tests/IssueSpec.js
 create mode 100644 tests/MixedSpec.js
 create mode 100644 tests/NamedRangesSpec.js

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..b512c09
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+node_modules
\ No newline at end of file
diff --git a/Makefile b/Makefile
index 2045f80..f54d6d4 100644
--- a/Makefile
+++ b/Makefile
@@ -6,3 +6,6 @@ xlsx.js: $(DEPS)
 .PHONY: clean
 clean:
 	rm xlsx.js
+
+test:
+	npm test
\ No newline at end of file
diff --git a/package.json b/package.json
index af8238d..6e21f65 100644
--- a/package.json
+++ b/package.json
@@ -21,7 +21,8 @@
 		"jasmine-node": "x"
 	},
 	"scripts": {
-		"test": "jasmine-node tests/"
+		"pretest": "git submodule init && git submodule update",
+		"test": "jasmine-node --verbose tests/"
 	},
 	"engines": { "node": ">=0.6" }
 }
diff --git a/tests/Common.js b/tests/Common.js
new file mode 100644
index 0000000..2d28a5f
--- /dev/null
+++ b/tests/Common.js
@@ -0,0 +1,25 @@
+var XLSX = require('../');
+
+var tests = {
+	'should be able to open workbook': function (file) {
+		var xlsx = XLSX.readFile('tests/files/' + file);
+		expect(xlsx).toBeTruthy();
+		expect(xlsx).toEqual(jasmine.any(Object));
+	},
+	'should define all api properties correctly': function (file) {
+		var xlsx = XLSX.readFile('tests/files/' + file);
+		expect(xlsx.Workbook).toEqual(jasmine.any(Object));
+		expect(xlsx.Props).toBeDefined();
+		expect(xlsx.Deps).toBeDefined();
+		expect(xlsx.Sheets).toEqual(jasmine.any(Object));
+		expect(xlsx.SheetNames).toEqual(jasmine.any(Array));
+		expect(xlsx.Strings).toBeDefined();
+		expect(xlsx.Styles).toBeDefined();
+	}
+};
+
+module.exports = function (file) {
+	for (var key in tests) {
+		it(key, tests[key].bind(undefined, file));
+	}
+};
\ No newline at end of file
diff --git a/tests/EncodedSpec.js b/tests/EncodedSpec.js
new file mode 100644
index 0000000..8cb4043
--- /dev/null
+++ b/tests/EncodedSpec.js
@@ -0,0 +1,8 @@
+var XLSX = require('../');
+var testCommon = require('./Common.js');
+
+var file = 'חישוב_נקודות_זיכוי.xlsx';
+
+describe(file, function () {
+	testCommon(file);
+});
\ No newline at end of file
diff --git a/tests/FormulaSpec.js b/tests/FormulaSpec.js
new file mode 100644
index 0000000..c67cfb8
--- /dev/null
+++ b/tests/FormulaSpec.js
@@ -0,0 +1,9 @@
+var XLSX = require('../');
+var testCommon = require('./Common.js');
+
+var file = 'formula_stress_test.xlsx';
+
+describe(file, function () {
+	// Opening the file currently crashes node
+	//testCommon(file);
+});
\ No newline at end of file
diff --git a/tests/InterviewSpec.js b/tests/InterviewSpec.js
new file mode 100644
index 0000000..4ab2e5a
--- /dev/null
+++ b/tests/InterviewSpec.js
@@ -0,0 +1,8 @@
+var XLSX = require('../');
+var testCommon = require('./Common.js');
+
+var file = 'interview.xlsx';
+
+describe(file, function () {
+	testCommon(file);
+});
\ No newline at end of file
diff --git a/tests/IssueSpec.js b/tests/IssueSpec.js
new file mode 100644
index 0000000..cc667ae
--- /dev/null
+++ b/tests/IssueSpec.js
@@ -0,0 +1,8 @@
+var XLSX = require('../');
+var testCommon = require('./Common.js');
+
+var file = 'issue.xlsx';
+
+describe(file, function () {
+	testCommon(file);
+});
\ No newline at end of file
diff --git a/tests/MixedSpec.js b/tests/MixedSpec.js
new file mode 100644
index 0000000..3b119df
--- /dev/null
+++ b/tests/MixedSpec.js
@@ -0,0 +1,8 @@
+var XLSX = require('../');
+var testCommon = require('./Common.js');
+
+var file = 'mixed_sheets.xlsx';
+
+describe(file, function () {
+	testCommon(file);
+});
\ No newline at end of file
diff --git a/tests/NamedRangesSpec.js b/tests/NamedRangesSpec.js
new file mode 100644
index 0000000..1e41a7e
--- /dev/null
+++ b/tests/NamedRangesSpec.js
@@ -0,0 +1,8 @@
+var XLSX = require('../');
+var testCommon = require('./Common.js');
+
+var file = 'named_ranges_2011.xlsx';
+
+describe(file, function () {
+	testCommon(file);
+});
\ No newline at end of file