1
0
mirror of https://git.cloudron.io/cloudron/syncthing-app synced 2025-09-14 17:09:07 +00:00

Compare commits

...

3 Commits

Author SHA1 Message Date
Dennis Schwerdel
37b6969e24 Fixed wrong URL 2017-06-06 10:22:12 +02:00
Dennis Schwerdel
13de61d86e Fixed tests 2017-05-23 21:45:05 +02:00
Dennis Schwerdel
b5aadcde74 Caching ldap auth and fixed tests 2017-05-23 15:08:50 +02:00
4 changed files with 35 additions and 52 deletions

View File

@@ -2,26 +2,7 @@
* Initial version * Initial version
[0.1.1] [0.1.1]
* Added screenshots * Huge speedup by caching ldap
[0.2.0] [0.1.2]
* Updated to 2017-01-25T03-14-52Z * Fixed wrong URL
[0.2.1]
* Updated to 2017-02-16T01-47-30Z
* This version fixes the settings bug
[0.2.2]
* New base image 0.10.0
[0.2.3]
* Updated to 2017-03-16T21-50-32Z
[0.2.4]
* Updated to 2017-04-25T01-27-49Z
[0.2.5]
* Updated to 2017-04-29T00-40-27Z
[0.2.6]
* Updated to 2017-05-05T01-14-51Z

View File

@@ -5,7 +5,7 @@
"description": "file://DESCRIPTION.md", "description": "file://DESCRIPTION.md",
"changelog": "file://CHANGELOG", "changelog": "file://CHANGELOG",
"tagline": "Decentralized file synchronization", "tagline": "Decentralized file synchronization",
"version": "0.1.0", "version": "0.1.2",
"healthCheckPath": "/check", "healthCheckPath": "/check",
"httpPort": 8000, "httpPort": 8000,
"addons": { "addons": {
@@ -21,7 +21,7 @@
} }
}, },
"manifestVersion": 1, "manifestVersion": 1,
"website": "http://www.synthing.net", "website": "http://syncthing.net",
"contactEmail": "support@cloudron.io", "contactEmail": "support@cloudron.io",
"icon": "logo.png", "icon": "logo.png",
"tags": [ "tags": [

View File

@@ -28,6 +28,9 @@ http {
proxy_buffering off; proxy_buffering off;
proxy_cache_path /tmp/proxy_cache levels=1:2 keys_zone=my_cache:10m max_size=100m inactive=60m use_temp_path=off; proxy_cache_path /tmp/proxy_cache levels=1:2 keys_zone=my_cache:10m max_size=100m inactive=60m use_temp_path=off;
proxy_cache my_cache; proxy_cache my_cache;
auth_ldap_cache_enabled on;
auth_ldap_cache_expiration_time 300000;
auth_ldap_cache_size 100;
server { server {
error_log /dev/stderr warn; error_log /dev/stderr warn;

View File

@@ -51,59 +51,58 @@ describe('Application life cycle test', function () {
var SYNC_PORT = 22001; var SYNC_PORT = 22001;
var app; var app;
function pageLoaded(callback) { function pageLoaded() {
browser.wait(until.titleMatches(/[0-9a-f]{12} \| Syncthing/), TEST_TIMEOUT).then(callback); return browser.wait(until.titleMatches(/[0-9a-f]{12} \| Syncthing/), TEST_TIMEOUT);
} }
function visible(selector, callback) { function visible(selector) {
return browser.wait(until.elementLocated(selector), TEST_TIMEOUT).then(function () { return browser.wait(until.elementLocated(selector), TEST_TIMEOUT).then(function () {
browser.wait(until.elementIsVisible(browser.findElement(selector)), TEST_TIMEOUT).then(function () { return browser.wait(until.elementIsVisible(browser.findElement(selector)), TEST_TIMEOUT);
callback();
});
}); });
} }
function loadPage(callback) { function loadPage(callback) {
browser.manage().deleteAllCookies(); browser.manage().deleteAllCookies();
browser.get('https://' + username + ':' + password + '@' + app.fqdn); browser.get('https://' + username + ':' + password + '@' + app.fqdn);
pageLoaded(function() { return pageLoaded().then(function() {
callback(); callback();
}); });
} }
function addFolder(callback) { function addFolder(callback) {
pageLoaded(function() { return pageLoaded().then(function() {
browser.findElement(by.css('[ng-click*=addFolder]')).click(); browser.findElement(by.css('[ng-click*=addFolder]')).click();
visible(by.id('folderPath'), function() { return visible(by.id('folderPath')).then(function() {
browser.findElement(by.id('folderLabel')).sendKeys('test').then(function() { return browser.findElement(by.id('folderLabel')).sendKeys('test');
browser.findElement(by.id('folderPath')).sendKeys('/app/data/test').then(function() { }).then(function() {
//Clear and re-enter the folder to avoid race with auto-completion return browser.findElement(by.id('folderPath')).sendKeys('/app/data/test');
browser.findElement(by.id('folderPath')).clear().then(function() { }).then(function() {
browser.findElement(by.id('folderPath')).sendKeys('/app/data/test').then(function() { //Clear and re-enter the folder to avoid race with auto-completion
browser.findElement(by.css('[ng-click*=saveFolder]')).click().then(function() { return browser.findElement(by.id('folderPath')).clear();
browser.wait(until.elementLocated(by.css('#folders .panel-status span[ng-switch-when=unshared]')), TEST_TIMEOUT).then(function() { }).then(function() {
callback(); return browser.findElement(by.id('folderPath')).sendKeys('/app/data/test');
}); }).then(function() {
}); return browser.findElement(by.css('[ng-click*=saveFolder]')).click();
}); }).then(function() {
}); return browser.wait(until.elementLocated(by.css('#folders .panel-status span[ng-switch-when=unshared]')), TEST_TIMEOUT);
}); }).then(function() {
}); callback();
}); });
}); });
} }
function removeFolder(callback) { function removeFolder(callback) {
pageLoaded(function() { browser.get('https://' + username + ':' + password + '@' + app.fqdn);
return pageLoaded().then(function() {
browser.findElement(by.css('#folders button')).click(); browser.findElement(by.css('#folders button')).click();
setTimeout(function() { setTimeout(function() {
browser.findElement(by.css('#folder-0 button[ng-click*=editFolder]')).click(); browser.findElement(by.css('#folder-0 button[ng-click*=editFolder]')).click();
setTimeout(function() { setTimeout(function() {
browser.findElement(by.css('[ng-click*=deleteFolder]')).click().then(function() { browser.findElement(by.css('[ng-click*=deleteFolder]')).click().then(function() {
setTimeout(callback, 500); //This needs to run for some time setTimeout(callback, 1000); //This needs to run for some time
}); });
}, 500); //No way to check for visibility of angular-js components }, 1000); //No way to check for visibility of angular-js components
}, 500); //No way to check for visibility of angular-js components }, 1000); //No way to check for visibility of angular-js components
}); });
} }
@@ -141,7 +140,7 @@ describe('Application life cycle test', function () {
it('move to different location', function () { it('move to different location', function () {
browser.manage().deleteAllCookies(); browser.manage().deleteAllCookies();
execSync('cloudron configure --location ' + LOCATION + '2', { cwd: path.resolve(__dirname, '..'), stdio: 'inherit' }); execSync('cloudron configure --wait --location ' + LOCATION + '2', { cwd: path.resolve(__dirname, '..'), stdio: 'inherit' });
var inspect = JSON.parse(execSync('cloudron inspect')); var inspect = JSON.parse(execSync('cloudron inspect'));
app = inspect.apps.filter(function (a) { return a.location === LOCATION + '2'; })[0]; app = inspect.apps.filter(function (a) { return a.location === LOCATION + '2'; })[0];
expect(app).to.be.an('object'); expect(app).to.be.an('object');