summaryrefslogtreecommitdiffstats
path: root/core/js/tests/specs
diff options
context:
space:
mode:
authorClaas Augner <git@caugner.de>2018-10-17 21:43:37 +0200
committerRoeland Jago Douma <roeland@famdouma.nl>2018-10-24 09:18:39 +0200
commit00b8be60f20b0f75918929c9ae569122b229e281 (patch)
tree74b2d9dd998cd6afb68636404f7ea262ea59656d /core/js/tests/specs
parent7c0cd4f9ff22d1b94176079dca152b2f56ff0c88 (diff)
downloadnextcloud-server-00b8be60f20b0f75918929c9ae569122b229e281.tar.gz
nextcloud-server-00b8be60f20b0f75918929c9ae569122b229e281.zip
humanFileSize: use toLocaleString
humanFileSize: add test with locale humanFileSize: use canonical locale humanFileSize: skip test w/o toLocaleString support humanFileSize: stub getCanonicalLocale OC.getCanonicalLocale: cover undefined case humanFileSize: fix getCanonicalLocale stub Signed-off-by: Claas Augner <git@caugner.de>
Diffstat (limited to 'core/js/tests/specs')
-rw-r--r--core/js/tests/specs/coreSpec.js54
1 files changed, 54 insertions, 0 deletions
diff --git a/core/js/tests/specs/coreSpec.js b/core/js/tests/specs/coreSpec.js
index 96c8e3f99ec..8a867fe3228 100644
--- a/core/js/tests/specs/coreSpec.js
+++ b/core/js/tests/specs/coreSpec.js
@@ -273,6 +273,25 @@ describe('Core base tests', function() {
expect(OC.filePath('files', 'ajax', 'test.php')).toEqual('http://localhost/index.php/apps/files/ajax/test.php');
});
});
+ describe('getCanonicalLocale', function() {
+ var localeStub;
+
+ beforeEach(function() {
+ localeStub = sinon.stub(OC, 'getLocale');
+ });
+ afterEach(function() {
+ localeStub.restore();
+ });
+
+ it("Returns primary locales as is", function() {
+ expect(OC.getCanonicalLocale('de')).toEqual('de');
+ expect(OC.getCanonicalLocale('zu')).toEqual('zu');
+ });
+ it("Returns extended locales with hyphens", function() {
+ expect(OC.getCanonicalLocale('az_Cyrl_AZ')).toEqual('az-Cyrl-AZ');
+ expect(OC.getCanonicalLocale('de_DE')).toEqual('de-DE');
+ });
+ });
describe('Link functions', function() {
var TESTAPP = 'testapp';
var TESTAPP_ROOT = OC.getRootPath() + '/appsx/testapp';
@@ -560,7 +579,26 @@ describe('Core base tests', function() {
});
});
describe('Util', function() {
+ var locale;
+ var localeStub;
+
+ beforeEach(function() {
+ locale = OC.getCanonicalLocale();
+ localeStub = sinon.stub(OC, 'getCanonicalLocale');
+ localeStub.returns(locale);
+ });
+
+ afterEach(function() {
+ localeStub.restore();
+ });
+
describe('humanFileSize', function() {
+ // cit() will skip tests if toLocaleString() is not supported.
+ // See https://github.com/ariya/phantomjs/issues/12581
+ //
+ // Please run these tests in Chrome/Firefox manually.
+ var cit = 4.2.toLocaleString("de") !== "4,2" ? xit : it;
+
it('renders file sizes with the correct unit', function() {
var data = [
[0, '0 B'],
@@ -589,6 +627,22 @@ describe('Core base tests', function() {
expect(OC.Util.humanFileSize(data[i][0], true)).toEqual(data[i][1]);
}
});
+ cit('renders file sizes with the correct locale', function() {
+ localeStub.returns("de");
+ var data = [
+ [0, '0 B'],
+ ["0", '0 B'],
+ ["A", 'NaN B'],
+ [125, '125 B'],
+ [128000, '125 KB'],
+ [128000000, '122,1 MB'],
+ [128000000000, '119,2 GB'],
+ [128000000000000, '116,4 TB']
+ ];
+ for (var i = 0; i < data.length; i++) {
+ expect(OC.Util.humanFileSize(data[i][0])).toEqual(data[i][1]);
+ }
+ });
});
describe('computerFileSize', function() {
it('correctly parses file sizes from a human readable formated string', function() {