2019-08-09 11:53:11 +02:00
|
|
|
import Config from "common/config";
|
2019-08-09 16:00:52 +02:00
|
|
|
import MockAdapter from "axios-mock-adapter";
|
|
|
|
import Api from "common/api";
|
2019-08-09 11:53:11 +02:00
|
|
|
|
2020-06-30 16:53:12 +02:00
|
|
|
window.__CONFIG__ = {
|
|
|
|
"name": "PhotoPrism",
|
|
|
|
"version": "200531-4684f66-Linux-x86_64-DEBUG",
|
|
|
|
"copyright": "(c) 2018-2020 PhotoPrism.org \u003chello@photoprism.org\u003e",
|
|
|
|
"flags": "public debug experimental settings",
|
|
|
|
"siteUrl": "http://localhost:2342/",
|
|
|
|
"siteTitle": "PhotoPrism",
|
|
|
|
"siteCaption": "Browse your life",
|
|
|
|
"siteDescription": "Personal Photo Management powered by Go and Google TensorFlow. Free and open-source.",
|
|
|
|
"siteAuthor": "Anonymous",
|
|
|
|
"debug": true,
|
|
|
|
"readonly": false,
|
|
|
|
"uploadNSFW": false,
|
|
|
|
"public": true,
|
|
|
|
"experimental": true,
|
|
|
|
"disableSettings": false,
|
|
|
|
"albumCategories": null,
|
|
|
|
"albums": [],
|
|
|
|
"cameras": [{
|
|
|
|
"ID": 2,
|
|
|
|
"Slug": "olympus-c2500l",
|
|
|
|
"Name": "Olympus C2500L",
|
|
|
|
"Make": "Olympus",
|
|
|
|
"Model": "C2500L"
|
|
|
|
}, {"ID": 1, "Slug": "zz", "Name": "Unknown", "Make": "", "Model": "Unknown"}],
|
|
|
|
"lenses": [{"ID": 1, "Slug": "zz", "Name": "Unknown", "Make": "", "Model": "Unknown", "Type": ""}],
|
|
|
|
"countries": [{"ID": "de", "Slug": "germany", "Name": "Germany"}, {
|
|
|
|
"ID": "is",
|
|
|
|
"Slug": "iceland",
|
|
|
|
"Name": "Iceland"
|
|
|
|
}, {"ID": "zz", "Slug": "zz", "Name": "Unknown"}],
|
|
|
|
"thumbnails": [{"Name": "fit_720", "Width": 720, "Height": 720}, {
|
|
|
|
"Name": "fit_2048",
|
|
|
|
"Width": 2048,
|
|
|
|
"Height": 2048
|
|
|
|
}, {"Name": "fit_1280", "Width": 1280, "Height": 1024}, {
|
|
|
|
"Name": "fit_1920",
|
|
|
|
"Width": 1920,
|
|
|
|
"Height": 1200
|
|
|
|
}, {"Name": "fit_2560", "Width": 2560, "Height": 1600}, {"Name": "fit_3840", "Width": 3840, "Height": 2400}],
|
|
|
|
"downloadToken": "1uhovi0e",
|
|
|
|
"previewToken": "static",
|
|
|
|
"jsHash": "0fd34136",
|
|
|
|
"cssHash": "2b327230",
|
|
|
|
"settings": {
|
|
|
|
"theme": "default",
|
|
|
|
"language": "en",
|
|
|
|
"templates": {"default": "index.tmpl"},
|
|
|
|
"maps": {"animate": 0, "style": "streets"},
|
|
|
|
"features": {
|
|
|
|
"archive": true,
|
|
|
|
"private": true,
|
|
|
|
"review": true,
|
|
|
|
"upload": true,
|
|
|
|
"import": true,
|
|
|
|
"files": true,
|
|
|
|
"moments": true,
|
|
|
|
"labels": true,
|
|
|
|
"places": true,
|
|
|
|
"download": false,
|
|
|
|
"edit": true,
|
|
|
|
"share": true,
|
|
|
|
"logs": true
|
|
|
|
},
|
|
|
|
"import": {"path": "/", "move": false},
|
|
|
|
"index": {"path": "/", "convert": true, "rescan": false, "group": true}
|
|
|
|
},
|
|
|
|
"count": {
|
|
|
|
"cameras": 1,
|
|
|
|
"lenses": 0,
|
|
|
|
"countries": 2,
|
|
|
|
"photos": 126,
|
|
|
|
"videos": 0,
|
|
|
|
"hidden": 3,
|
|
|
|
"favorites": 1,
|
|
|
|
"private": 0,
|
|
|
|
"review": 0,
|
|
|
|
"states": 2,
|
|
|
|
"albums": 0,
|
|
|
|
"moments": 0,
|
|
|
|
"months": 0,
|
|
|
|
"folders": 0,
|
|
|
|
"files": 255,
|
|
|
|
"places": 0,
|
|
|
|
"labels": 13,
|
|
|
|
"labelMaxPhotos": 1
|
|
|
|
},
|
|
|
|
"pos": {"uid": "", "loc": "", "utc": "0001-01-01T00:00:00Z", "lat": 0, "lng": 0},
|
|
|
|
"years": [2003, 2002],
|
|
|
|
"colors": [{"Example": "#AB47BC", "Name": "Purple", "Slug": "purple"}, {
|
|
|
|
"Example": "#FF00FF",
|
|
|
|
"Name": "Magenta",
|
|
|
|
"Slug": "magenta"
|
|
|
|
}, {"Example": "#EC407A", "Name": "Pink", "Slug": "pink"}, {
|
|
|
|
"Example": "#EF5350",
|
|
|
|
"Name": "Red",
|
|
|
|
"Slug": "red"
|
|
|
|
}, {"Example": "#FFA726", "Name": "Orange", "Slug": "orange"}, {
|
|
|
|
"Example": "#D4AF37",
|
|
|
|
"Name": "Gold",
|
|
|
|
"Slug": "gold"
|
|
|
|
}, {"Example": "#FDD835", "Name": "Yellow", "Slug": "yellow"}, {
|
|
|
|
"Example": "#CDDC39",
|
|
|
|
"Name": "Lime",
|
|
|
|
"Slug": "lime"
|
|
|
|
}, {"Example": "#66BB6A", "Name": "Green", "Slug": "green"}, {
|
|
|
|
"Example": "#009688",
|
|
|
|
"Name": "Teal",
|
|
|
|
"Slug": "teal"
|
|
|
|
}, {"Example": "#00BCD4", "Name": "Cyan", "Slug": "cyan"}, {
|
|
|
|
"Example": "#2196F3",
|
|
|
|
"Name": "Blue",
|
|
|
|
"Slug": "blue"
|
|
|
|
}, {"Example": "#A1887F", "Name": "Brown", "Slug": "brown"}, {
|
|
|
|
"Example": "#F5F5F5",
|
|
|
|
"Name": "White",
|
|
|
|
"Slug": "white"
|
|
|
|
}, {"Example": "#9E9E9E", "Name": "Grey", "Slug": "grey"}, {
|
|
|
|
"Example": "#212121",
|
|
|
|
"Name": "Black",
|
|
|
|
"Slug": "black"
|
|
|
|
}],
|
|
|
|
"categories": [{"UID": "lqb6y631re96cper", "Slug": "animal", "Name": "Animal"}, {
|
|
|
|
"UID": "lqb6y5gvo9avdfx5",
|
|
|
|
"Slug": "architecture",
|
|
|
|
"Name": "Architecture"
|
|
|
|
}, {"UID": "lqb6y633nhfj1uzt", "Slug": "bird", "Name": "Bird"}, {
|
|
|
|
"UID": "lqb6y633g3hxg1aq",
|
|
|
|
"Slug": "farm",
|
|
|
|
"Name": "Farm"
|
|
|
|
}, {"UID": "lqb6y4i1ez9cw5bi", "Slug": "nature", "Name": "Nature"}, {
|
|
|
|
"UID": "lqb6y4f2v7dw8irs",
|
|
|
|
"Slug": "plant",
|
|
|
|
"Name": "Plant"
|
|
|
|
}, {"UID": "lqb6y6s2ohhmu0fn", "Slug": "reptile", "Name": "Reptile"}, {
|
|
|
|
"UID": "lqb6y6ctgsq2g2np",
|
|
|
|
"Slug": "water",
|
|
|
|
"Name": "Water"
|
|
|
|
}],
|
|
|
|
"clip": 160,
|
|
|
|
"server": {
|
|
|
|
"cores": 2,
|
|
|
|
"routines": 23,
|
|
|
|
"memory": {"used": 1224531272, "reserved": 1416904088, "info": "Used 1.2 GB / Reserved 1.4 GB"}
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
2020-07-02 10:03:00 +02:00
|
|
|
let chai = require("chai/chai");
|
2019-08-13 08:11:22 +02:00
|
|
|
let assert = chai.assert;
|
|
|
|
|
2020-06-30 16:53:12 +02:00
|
|
|
const config2 = new Config(window.localStorage, window.__CONFIG__);
|
|
|
|
|
2019-08-12 13:00:13 +02:00
|
|
|
describe("common/config", () => {
|
2019-08-09 16:00:52 +02:00
|
|
|
|
2019-08-12 13:00:13 +02:00
|
|
|
const mock = new MockAdapter(Api);
|
2019-08-09 11:53:11 +02:00
|
|
|
|
|
|
|
it("should get all config values", () => {
|
|
|
|
const storage = window.localStorage;
|
2020-05-31 12:52:41 +02:00
|
|
|
const values = {siteTitle: "Foo", name: "testConfig", year: "2300"};
|
2019-08-09 11:53:11 +02:00
|
|
|
|
|
|
|
const config = new Config(storage, values);
|
|
|
|
const result = config.getValues();
|
|
|
|
assert.equal(result.name, "testConfig");
|
|
|
|
});
|
|
|
|
|
|
|
|
it("should set multiple config values", () => {
|
|
|
|
const storage = window.localStorage;
|
2020-05-31 12:52:41 +02:00
|
|
|
const values = {siteTitle: "Foo", country: "Germany", city: "Hamburg"};
|
2020-06-30 16:53:12 +02:00
|
|
|
const newValues = {siteTitle: "Foo", new: "xxx", city: "Berlin", debug: true, settings: {theme: "lavender"}};
|
2019-08-09 11:53:11 +02:00
|
|
|
const config = new Config(storage, values);
|
|
|
|
assert.equal(config.values.new, undefined);
|
|
|
|
assert.equal(config.values.city, "Hamburg");
|
|
|
|
config.setValues();
|
|
|
|
assert.equal(config.values.new, undefined);
|
|
|
|
assert.equal(config.values.city, "Hamburg");
|
|
|
|
config.setValues(newValues);
|
|
|
|
const result = config.getValues();
|
|
|
|
assert.equal(result.city, "Berlin");
|
|
|
|
assert.equal(result.new, "xxx");
|
|
|
|
assert.equal(result.country, "Germany");
|
2020-06-30 16:53:12 +02:00
|
|
|
assert.equal(config.values.settings.theme, "lavender");
|
2019-08-09 11:53:11 +02:00
|
|
|
});
|
|
|
|
|
|
|
|
it("should store values", () => {
|
|
|
|
const storage = window.localStorage;
|
2020-05-31 12:52:41 +02:00
|
|
|
const values = {siteTitle: "Foo", country: "Germany", city: "Hamburg"};
|
2019-08-09 11:53:11 +02:00
|
|
|
const config = new Config(storage, values);
|
|
|
|
assert.equal(config.storage["config"], undefined);
|
|
|
|
config.storeValues();
|
2020-05-31 12:52:41 +02:00
|
|
|
const expected = '{"siteTitle":"Foo","country":"Germany","city":"Hamburg"}';
|
|
|
|
assert.equal(config.storage["config"], expected);
|
2019-08-09 11:53:11 +02:00
|
|
|
});
|
|
|
|
|
|
|
|
it("should set and get single config value", () => {
|
|
|
|
const storage = window.localStorage;
|
|
|
|
const values = {};
|
|
|
|
|
|
|
|
const config = new Config(storage, values);
|
2020-04-26 14:31:33 +02:00
|
|
|
config.set("city", "Berlin");
|
|
|
|
const result = config.get("city");
|
2019-08-09 11:53:11 +02:00
|
|
|
assert.equal(result, "Berlin");
|
|
|
|
});
|
2020-06-30 16:53:12 +02:00
|
|
|
|
|
|
|
it("should return settings", () => {
|
|
|
|
const result = config2.settings();
|
|
|
|
assert.equal(result.theme, "default");
|
|
|
|
assert.equal(result.language, "en");
|
|
|
|
});
|
|
|
|
|
|
|
|
it("should return feature", () => {
|
|
|
|
assert.equal(config2.feature("places"), true);
|
|
|
|
assert.equal(config2.feature("download"), false);
|
|
|
|
});
|
|
|
|
//TODO
|
|
|
|
/*it.only("should test onCount", () => {
|
|
|
|
const items = [{}, {}, {}];
|
|
|
|
assert.equal(config2.values.count.cameras, 1);
|
|
|
|
config2.onCount("add.camera", items);
|
|
|
|
assert.equal(config2.values.count.cameras, 1);
|
|
|
|
console.log(config2.values.count);
|
|
|
|
config2.onCount("add.cameras", items);
|
|
|
|
console.log(config2.values.count);
|
|
|
|
assert.equal(config2.values.count.cameras, 4);
|
|
|
|
config2.onCount("add.lenses", items);
|
|
|
|
assert.equal(config2.values.count.lenses, 3);
|
|
|
|
config2.onCount("add.countries", items);
|
|
|
|
assert.equal(config2.values.count.countries, 5);
|
|
|
|
config2.onCount("add.photos", items);
|
|
|
|
assert.equal(config2.values.count.photos, 129);
|
|
|
|
config2.onCount("add.videos", items);
|
|
|
|
assert.equal(config2.values.count.videos, 3);
|
|
|
|
config2.onCount("add.hidden", items);
|
|
|
|
assert.equal(config2.values.count.hidden, 6);
|
|
|
|
config2.onCount("add.favorites", items);
|
|
|
|
assert.equal(config2.values.count.favorites, 4);
|
|
|
|
config2.onCount("add.private", items);
|
|
|
|
assert.equal(config2.values.count.private, 3);
|
|
|
|
config2.onCount("add.review", items);
|
|
|
|
assert.equal(config2.values.count.review, 3);
|
|
|
|
config2.onCount("add.states", items);
|
|
|
|
assert.equal(config2.values.count.states, 5);
|
|
|
|
config2.onCount("add.albums", items);
|
|
|
|
assert.equal(config2.values.count.albums, 3);
|
|
|
|
config2.onCount("add.moments", items);
|
|
|
|
assert.equal(config2.values.count.moments, 3);
|
|
|
|
config2.onCount("add.months", items);
|
|
|
|
assert.equal(config2.values.count.months, 3);
|
|
|
|
config2.onCount("add.folders", items);
|
|
|
|
assert.equal(config2.values.count.folders, 3);
|
|
|
|
config2.onCount("add.files", items);
|
|
|
|
assert.equal(config2.values.count.files, 258);
|
|
|
|
config2.onCount("add.places", items);
|
|
|
|
assert.equal(config2.values.count.places, 3);
|
|
|
|
config2.onCount("add.labels", items);
|
|
|
|
assert.equal(config2.values.count.labels, 12);
|
|
|
|
});*/
|
2019-11-16 23:22:50 +01:00
|
|
|
});
|