1
0
mirror of https://git.cloudron.io/cloudron/gitea-app synced 2025-09-26 06:57:26 +00:00

Compare commits

..

42 Commits

Author SHA1 Message Date
Girish Ramakrishnan
e7671bd3f2 Version 1.6.0 2018-08-12 10:37:38 -07:00
Girish Ramakrishnan
32cc8175e5 Fix tests 2018-08-12 10:36:17 -07:00
Girish Ramakrishnan
534e4884b4 Update Gitea to 1.5.0 2018-08-12 10:17:14 -07:00
Girish Ramakrishnan
6e1f363b88 Version 1.5.4 2018-08-02 10:15:56 -07:00
Girish Ramakrishnan
3eb57f2c07 Add custom file test 2018-08-02 10:15:05 -07:00
Girish Ramakrishnan
b16095eef5 Set GITEA_CUSTOM 2018-08-02 09:41:19 -07:00
Girish Ramakrishnan
18b3ae6bc2 Version 1.5.3 2018-06-27 10:21:47 -07:00
Girish Ramakrishnan
fbf8e5f953 Update gitea to 1.4.3 2018-06-27 09:50:48 -07:00
Girish Ramakrishnan
106e65df9e Version 1.5.2-1 2018-06-07 17:11:34 -07:00
Girish Ramakrishnan
1b629265fa Version 1.5.2 2018-06-06 16:03:37 -07:00
Girish Ramakrishnan
f9949c11a3 fix api usage 2018-06-06 16:00:51 -07:00
Girish Ramakrishnan
a7e693c4ed Update Gitea to 1.4.2 2018-06-06 15:41:46 -07:00
Girish Ramakrishnan
b00d2aced2 Version 1.5.1 2018-05-05 09:41:08 -07:00
Girish Ramakrishnan
c2419ba46c Fix api use 2018-05-03 09:44:20 -07:00
Girish Ramakrishnan
b39e1850d7 add chromedriver 2018-05-03 09:38:42 -07:00
Girish Ramakrishnan
4d37e33eee Update Gitea to 1.4.1 2018-05-03 09:38:22 -07:00
Johannes Zellner
b86f9c7a20 Ensure the tests work with other instances installed 2018-03-26 12:36:09 +02:00
Johannes Zellner
7fd766b348 Bump version 2018-03-26 12:16:04 +02:00
Girish Ramakrishnan
525327c150 Version 1.4.1 2018-02-19 17:03:24 -08:00
Girish Ramakrishnan
bc658da61e Update Gitea to 1.3.3 2018-02-19 16:56:06 -08:00
Girish Ramakrishnan
25f206ccdb Version 1.4.0 2018-01-18 11:28:31 -08:00
Girish Ramakrishnan
d3553de1a6 Use SMTPS port to send email for Go programs 2018-01-18 11:21:31 -08:00
Girish Ramakrishnan
99379fdbb3 Version 1.3.1 2017-12-14 21:04:37 +05:30
Girish Ramakrishnan
21a9fccd60 Update gitea to 1.3.2 2017-12-14 20:48:44 +05:30
Girish Ramakrishnan
8837d2fd60 Version 1.3.0 2017-12-11 09:07:54 +05:30
Girish Ramakrishnan
a66843c3e3 Version 1.3.0 2017-12-11 08:58:10 +05:30
Girish Ramakrishnan
67403a6d2a Gitea 1.3.1 2017-12-11 08:46:00 +05:30
Dennis Schwerdel
c137f79e9b Version 1.2.0 2017-11-29 21:21:37 +01:00
Girish Ramakrishnan
0249f20656 Version 1.1.3 2017-11-03 15:06:22 -07:00
Girish Ramakrishnan
5d00e930ff Use gitea 1.2.3 2017-11-03 14:58:42 -07:00
Girish Ramakrishnan
619bd735a6 Version 1.1.2 2017-10-27 12:07:29 -07:00
Girish Ramakrishnan
a59430be60 Use gitea 1.2.2 2017-10-27 12:06:39 -07:00
Girish Ramakrishnan
3e04f6b996 Version 1.1.1 2017-10-17 10:46:38 -07:00
Girish Ramakrishnan
7481ed9f60 Update to Gitea 1.2.1 2017-10-17 10:30:05 -07:00
Girish Ramakrishnan
93e8df020f Version 1.1.0 2017-10-14 11:45:30 -07:00
Girish Ramakrishnan
2329c01ba5 Fix tests 2017-10-14 11:45:26 -07:00
Girish Ramakrishnan
bf67824fa6 Gitea got a new logo
https://github.com/go-gitea/gitea/pull/2194
2017-10-14 11:18:05 -07:00
Girish Ramakrishnan
795e6efb0a Use Gitea 1.2.0 2017-10-14 11:00:49 -07:00
Dennis Schwerdel
d984b4fe6c Update to 1.1.4 2017-09-04 23:30:42 +02:00
Dennis Schwerdel
6a90609565 Release 1.0.2 2017-09-02 19:35:33 +02:00
dswd
c67b13585f Merge branch 'totp_fix' into 'master'
Preserve SECRET_KEY across restarts

Closes #2

See merge request !5
2017-09-02 17:20:21 +00:00
Girish Ramakrishnan
24d40b7912 Preserve SECRET_KEY across restarts
fixes #2
2017-09-01 15:17:41 -07:00
9 changed files with 274 additions and 25 deletions

156
CHANGELOG
View File

@@ -18,3 +18,159 @@
* Fixes critical security issue that allows remote command execution in git
* https://people.canonical.com/~ubuntu-security/cve/2017/CVE-2017-1000117.html
[1.0.2]
* Preserve SECRET_KEY across updates and restarts
[1.0.3]
* Update to version 1.1.4
[1.1.0]
* Update to version 1.2.0
* New logo!
* SECURITY: Sanitation fix from Gogs (#1461)
* Status-API
* Implement GPG api
* https://github.com/go-gitea/gitea/releases/tag/v1.2.0
[1.1.1]
* Update to version 1.2.1
* Fix PR, milestone and label functionality if issue unit is disabled (#2710) (#2714)
* Fix plain readme didn't render correctly on repo home page (#2705) (#2712)
* Fix so that user can still fork his own repository to his organizations (#2699) (#2707)
* Fix .netrc authentication (#2700) (#2708)
* Fix slice out of bounds error in mailer (#2479) (#2696)
[1.1.2]
* Update to version 1.2.2
* Add checks for commits with missing author and time (#2771) (#2785)
* Fix sending mail with a non-latin display name (#2559) (#2783)
* Sync MaxGitDiffLineCharacters with conf/app.ini (#2779) (#2780)
* Update vendor git (#2765) (#2772)
* Fix emojify image URL (#2769) (#2773)
[1.1.3]
* Update to version 1.2.3
* Only require one email when validating GPG key (#2266, #2467, #2663) (#2788)
* Fix order of comments (#2835) (#2839)
[1.2.0]
* Update to version 1.3.0
[1.3.0]
* Update to version 1.3.1
* Add documentationUrl
* Sanitize logs for mirror sync (#3057, #3082) (#3078)
* Fix missing branch in release bug (#3108) (#3117)
* Fix repo indexer and submodule bug (#3107) (#3110)
* Fix legacy URL redirects (#3100) (#3106)
* Fix redis session failed (#3086) (#3089)
* Fix issue list branch link broken (#3061) (#3070)
* Fix missing password length check when change password (#3039) (#3071)
[1.3.1]
* Update Gitea to 1.3.2
* Fix run web with -p push failed (#3154) (#3179)
* Fix source download link when no code unit allowed (#3166) (#3169)
* Allow adding collaborators with (fullname) (#3103) (#3168)
* Fix repo links (#3093) (#3163)
* Fix Uninitialized variable in ParsePatch (#3156) (#3162)
* Fix migration order v1.3 (#3157)
* Fix avatar URLs (#3069) (#3143)
[1.4.0]
* Fix email sending (use SMTPS)
[1.4.1]
* Update Gitea to 1.3.3
* Security fixes
* Fix escaping changed title in comments (#3530) (#3535)
* Escape search query display (#3486) (#3489)
* Bug fixes
* Fix repo-transfer-and-team-repo-count bug (#3241) (#3244)
* Open external tracker in blank window, consistently with wiki (#3227) (#3228)
* Change SSL Mode from checkbox to string in admin page (#3208) (#3211)
[1.5.0]
* Update Gitea to 1.4.0
[1.5.1]
* Update Gitea to 1.4.1
* Add “error” as reserved username (#3882) (#3886)
* Do not allow inactive users to access repositories using private key (#3887) (#3889)
* Fix path cleanup in file editor, when initilizing new repository and LFS oids (#3871) (#3873)
* Remove unnecessary allowed safe HTML (#3778) (#3779)
* Correctly check http git access rights for reverse proxy authorized users (#3721) (#3743)
* Fix to use only needed columns from tables to get repository git paths (#3870) (#3883)
* Fix GPG expire time display when time is zero (#3584) (#3884)
* Fix to update only issue last update time when adding a comment (#3855) (#3860)
* Fix repository star count after deleting user (#3781) (#3783)
* Use the active branch for the code tab (#3720) (#3776)
* Set default branch name on first push (#3715) (#3723)
* Show clipboard button if disable HTTP of git protocol (#3773) (#3774)
[1.5.2]
* Update Gitea to 1.4.2
* Adjust z-index for floating labels (#3939) (#3950)
* Add missing token validation on application settings page (#3976) #3978
* Webhook and hook_task clean up (#4006)
* Fix webhook bug of response info is not displayed in UI (#4023)
* Fix writer cannot read bare repo guide (#4033) (#4039)
* Don't force due date to current time (#3830) (#4057)
* Fix wiki redirects (#3919) (#4065)
* Fix attachment ENABLED (#4064) (#4066)
* Added deletion of an empty line at the end of file (#4054) (#4074)
* Use ResolveReference instead of path.Join (#4073)
* Fix #4081 Check for leading / in base before removing it (#4083)
* Respository's home page not updated after first push (#4075)
[1.5.2-1]
* Rebuild Gitea package because of https://github.com/go-gitea/gitea/issues/4167
* Adjust z-index for floating labels (#3939) (#3950)
* Add missing token validation on application settings page (#3976) #3978
* Webhook and hook_task clean up (#4006)
* Fix webhook bug of response info is not displayed in UI (#4023)
* Fix writer cannot read bare repo guide (#4033) (#4039)
* Don't force due date to current time (#3830) (#4057)
* Fix wiki redirects (#3919) (#4065)
* Fix attachment ENABLED (#4064) (#4066)
* Added deletion of an empty line at the end of file (#4054) (#4074)
* Use ResolveReference instead of path.Join (#4073)
* Fix #4081 Check for leading / in base before removing it (#4083)
* Respository's home page not updated after first push (#4075)
[1.5.3]
* Update Gitea to 1.4.3
* SECURITY
* HTML-escape plain-text READMEs (#4192) (#4214)
* Fix open redirect vulnerability on login screen (#4312) (#4312)
* BUGFIXES
* Fix broken monitoring page when running processes are shown (#4203) (#4208)
* Fix delete comment bug (#4216) (#4228)
* Delete reactions added to issues and comments when deleting repository (#4232) (#4237)
* Fix wiki URL encoding bug (#4091) (#4254)
* Fix code tab link when viewing tags (#3908) (#4263)
* Fix webhook type conflation (#4285) (#4285)
[1.5.4]
* Allow customization using gitea's custom data directory
[1.6.0]
* Update Gitea to 1.5.0
* Security
* Check that repositories can only be migrated to own user or organizations (#4366) (#4370)
* Limit uploaded avatar image-size to 4096px x 3072px by default (#4353)
* Do not allow to reuse TOTP passcode (#3878)
* Features
* Add cli commands to regen hooks & keys (#3979)
* Add support for FIDO U2F (#3971)
* Added user language setting (#3875)
* Add topic support (#3711)
* Multiple assignees (#3705)
* Add protected branch whitelists for merging (#3689)
* Global code search support (#3664)
* Add label descriptions (#3662)
* Add issue search via API (#3612)
* Add repository setting to enable/disable health checks (#3607)
* Emoji Autocomplete (#3433)
* Implements generator cli for secrets (#3531)

View File

@@ -4,7 +4,7 @@
"author": "Gitea developers",
"description": "file://DESCRIPTION.md",
"tagline": "A painless self-hosted Git Service",
"version": "1.0.1",
"version": "1.6.0",
"healthCheckPath": "/healthcheck",
"httpPort": 3000,
"addons": {
@@ -33,5 +33,7 @@
],
"tags": [ "version control", "git", "code hosting", "development" ],
"changelog": "file://CHANGELOG",
"postInstallMessage": "file://POSTINSTALL.md"
"postInstallMessage": "file://POSTINSTALL.md",
"minBoxVersion": "1.10.0",
"documentationUrl": "https://cloudron.io/documentation/apps/gitea/"
}

View File

@@ -1,6 +1,6 @@
Gitea is a painless self-hosted Git service. It is similar to GitHub, Bitbucket or Gitlab. The initial development have been done on Gogs but we have forked it and named it Gitea. If you want to read more about the reasons why we have done that please read [this](https://blog.gitea.io/2016/12/welcome-to-gitea/) blog post.
This app packages Gitea <upstream>1.5.0</upstream>
This app packages Gitea <upstream>1.1.3</upstream>
Gitea is a painless self-hosted Git service. It is similar to GitHub, Bitbucket or Gitlab.
### Purpose

View File

@@ -1,6 +1,6 @@
FROM cloudron/base:0.10.0
ENV VERSION 1.1.3
ENV VERSION 1.5.0
RUN apt-get update && \
apt-get install -y openssh-server git && \

BIN
logo.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 97 KiB

After

Width:  |  Height:  |  Size: 8.9 KiB

View File

@@ -62,6 +62,11 @@ if ! [ -f /app/data/app.ini ]; then
cp /home/git/app.ini.template /app/data/app.ini
fi
if [ "$(crudini --get /app/data/app.ini security SECRET_KEY)" == "##SECRET_KEY" ]; then
echo "Generating new SECRET_KEY"
crudini --set "/app/data/app.ini" security SECRET_KEY $(pwgen -1 -s)
fi
# merge user config file
crudini --merge "/run/gitea/app.ini" < "/app/data/app.ini"
@@ -82,19 +87,17 @@ crudini --set "/run/gitea/app.ini" server SSH_PORT "${SSH_PORT}"
crudini --set "/run/gitea/app.ini" server APP_DATA_PATH "/app/data/appdata"
crudini --set "/run/gitea/app.ini" repository ROOT "/app/data/repository"
crudini --set "/run/gitea/app.ini" repository.upload TEMP_PATH "/run/gitea/tmp/uploads"
crudini --set "/run/gitea/app.ini" mailer HOST "${MAIL_SMTP_SERVER}:${MAIL_SMTP_PORT}"
crudini --set "/run/gitea/app.ini" mailer HOST "${MAIL_SMTP_SERVER}:${MAIL_SMTPS_PORT}"
crudini --set "/run/gitea/app.ini" mailer USER "${MAIL_SMTP_USERNAME}"
crudini --set "/run/gitea/app.ini" mailer PASSWD "${MAIL_SMTP_PASSWORD}"
crudini --set "/run/gitea/app.ini" mailer FROM "${MAIL_FROM}"
crudini --set "/run/gitea/app.ini" mailer SKIP_VERIFY "true"
crudini --set "/run/gitea/app.ini" security SECRET_KEY $(pwgen -1 -s)
crudini --set "/run/gitea/app.ini" security INSTALL_LOCK "true"
crudini --set "/run/gitea/app.ini" log MODE "console"
crudini --set "/run/gitea/app.ini" log ROOT_PATH "/run/gitea"
crudini --set "/run/gitea/app.ini" indexer ISSUE_INDEXER_PATH "/app/data/appdata/indexers/issues.bleve"
mkdir -p /app/data/repository /app/data/ssh
mkdir -p /app/data/repository /app/data/ssh /app/data/custom
chown -R git:git /app/data /run/gitea

View File

@@ -9,4 +9,4 @@ stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0
environment=HOME="/home/git",USER="git"
environment=HOME="/home/git",USER="git",GITEA_CUSTOM="/app/data/custom"

View File

@@ -17,6 +17,7 @@
"superagent": "^1.4.0"
},
"dependencies": {
"chromedriver": "^2.38.2",
"selenium-server-standalone-jar": "^3.3.1",
"selenium-webdriver": "^3.3.0",
"superagent": "^1.8.5"

View File

@@ -9,6 +9,8 @@
'use strict';
require('chromedriver');
var execSync = require('child_process').execSync,
ejs = require('ejs'),
expect = require('expect.js'),
@@ -71,17 +73,43 @@ describe('Application life cycle test', function () {
expect(app).to.be.an('object');
}
function setAvatar(done) {
function setAvatarOld(done) {
browser.get('https://' + app.fqdn + '/user/settings/avatar').then(function () {
return browser.findElement(by.xpath('//input[@type="file" and @name="avatar"]')).sendKeys(path.resolve(__dirname, '../logo.png'));
}).then(function () {
return browser.findElement(by.xpath('//button[contains(text(), "Update Avatar Setting")]')).click();
}).then(function () {
browser.wait(until.elementLocated(by.xpath('//p[contains(text(),"updated successfully")]')), TIMEOUT).then(function () { done(); });
if (app.manifest.version === '1.0.3') {
return browser.wait(until.elementLocated(by.xpath('//p[contains(text(),"updated successfully")]')), TIMEOUT);
} else {
return browser.wait(until.elementLocated(by.xpath('//p[contains(text(),"Your avatar setting has been updated.")]')), TIMEOUT);
}
}).then(function () {
done();
});
}
function setAvatar(done) {
if (app.manifest.version === '1.5.4') return setAvatarOld(done);
browser.get('https://' + app.fqdn + '/user/settings').then(function () {
var button = browser.findElement(by.xpath('//label[contains(text(), "Use Custom Avatar")]'));
return browser.executeScript('arguments[0].scrollIntoView(false)', button);
}).then(function () {
return browser.findElement(by.xpath('//label[contains(text(), "Use Custom Avatar")]')).click();
}).then(function () {
return browser.findElement(by.xpath('//input[@type="file" and @name="avatar"]')).sendKeys(path.resolve(__dirname, '../logo.png'));
}).then(function () {
return browser.findElement(by.xpath('//button[contains(text(), "Update Avatar")]')).click();
}).then(function () {
return browser.wait(until.elementLocated(by.xpath('//p[contains(text(),"Your avatar has been updated.")]')), TIMEOUT);
}).then(function () {
done();
});
}
function checkAvatar(done) {
return done();
superagent.get('https://' + app.fqdn + '/avatars/a3e6f3316fc1738e29d621e6a26e93d3').end(function (error, result) {
expect(error).to.be(null);
expect(result.statusCode).to.be(200);
@@ -99,7 +127,7 @@ describe('Application life cycle test', function () {
}).then(function () {
return browser.findElement(by.xpath('//button[contains(text(), "Commit Changes")]')).click();
}).then(function () {
waitForUrl('https://' + app.fqdn + '/' + username + '/' + reponame + '/src/master/newfile', done);
waitForUrl('https://' + app.fqdn + '/' + username + '/' + reponame + '/src/branch/master/newfile', done);
});
}
@@ -120,28 +148,47 @@ describe('Application life cycle test', function () {
function addPublicKey(done) {
var publicKey = fs.readFileSync(__dirname + '/id_rsa.pub', 'utf8');
browser.get('https://' + app.fqdn + '/user/settings/ssh').then(function () {
const sshPage = 'https://' + app.fqdn + '/user/settings/keys';
browser.get(sshPage).then(function () {
return browser.findElement(by.xpath('//div[text()="Add Key"]')).click();
}).then(function () {
return browser.findElement(by.id('ssh-key-title')).sendKeys('testkey');
}).then(function () {
return browser.findElement(by.id('ssh-key-content')).sendKeys(publicKey.trim()); // #3480
}).then(function () {
var button = browser.findElement(by.xpath('//button[contains(text(), "Add Key")]'));
return browser.executeScript('arguments[0].scrollIntoView(false)', button);
}).then(function () {
return browser.findElement(by.xpath('//button[contains(text(), "Add Key")]')).click();
}).then(function () {
return browser.wait(until.elementLocated(by.xpath('//p[contains(text(), "added successfully!")]')), TIMEOUT);
if (app.manifest.version === '1.0.3') {
return browser.wait(until.elementLocated(by.xpath('//p[contains(text(), "added successfully!")]')), TIMEOUT);
} else {
return browser.wait(until.elementLocated(by.xpath('//p[contains(text(), "has been added.")]')), TIMEOUT);
}
}).then(function () {
done();
});
}
function createRepo(done) {
browser.get('https://' + app.fqdn).then(function () {
return browser.findElement(by.linkText('New Repository')).click();
}).then(function () {
return browser.wait(until.elementLocated(by.xpath('//*[contains(text(), "New Repository")]')), TIMEOUT);
}).then(function () {
var getRepoPage;
if (app.manifest.version === '1.0.3') {
getRepoPage = browser.get('https://' + app.fqdn).then(function () {
return browser.findElement(by.linkText('New Repository')).click();
}).then(function () {
return browser.wait(until.elementLocated(by.xpath('//*[contains(text(), "New Repository")]')), TIMEOUT);
});
} else {
getRepoPage = browser.get('https://' + app.fqdn + '/repo/create');
}
getRepoPage.then(function () {
return browser.findElement(by.id('repo_name')).sendKeys(reponame);
}).then(function () {
var button = browser.findElement(by.xpath('//button[contains(text(), "Create Repository")]'));
return browser.executeScript('arguments[0].scrollIntoView(true)', button);
}).then(function () {
return browser.findElement(by.id('auto-init')).click();
}).then(function () {
@@ -185,10 +232,42 @@ describe('Application life cycle test', function () {
done();
}
function addCustomFile(done) {
fs.writeFileSync('/tmp/customfile.txt', 'GOGS TEST', 'utf8');
execSync('cloudron exec -- mkdir -p /app/data/custom/public');
execSync('cloudron push /tmp/customfile.txt /app/data/custom/public/customfile.txt');
fs.unlinkSync('/tmp/customfile.txt');
done();
}
function checkCustomFile(done) {
superagent.get('https://' + app.fqdn + '/customfile.txt').end(function (error, result) {
if (error) return done(error);
expect(result.text).to.contain('GOGS TEST');
done();
});
}
function fileExists() {
expect(fs.existsSync(repodir + '/newfile')).to.be(true);
}
function sendMail(done) {
browser.get('https://' + app.fqdn + '/admin/config').then(function () {
var button = browser.findElement(by.xpath('//button[@id="test-mail-btn"]'));
return browser.executeScript('arguments[0].scrollIntoView(true)', button);
}).then(function () {
return browser.findElement(by.xpath('//input[@name="email"]')).sendKeys('test@cloudron.io');
}).then(function () {
return browser.findElement(by.xpath('//button[@id="test-mail-btn"]')).click();
}).then(function () {
return browser.wait(until.elementLocated(by.xpath('//p[contains(text(),"A testing email has been sent to \'test@cloudron.io\'")]')), TIMEOUT);
}).then(function () {
done();
});
}
xit('build app', function () {
execSync('cloudron build', { cwd: path.resolve(__dirname, '..'), stdio: 'inherit' });
});
@@ -203,7 +282,7 @@ describe('Application life cycle test', function () {
if (error) return done(error);
if (result.statusCode !== 200) return done(new Error('Login failed with status ' + result.statusCode));
token = result.body.token;
token = result.body.accessToken;
superagent.get('https://' + inspect.apiEndpoint + '/api/v1/profile')
.query({ access_token: token }).end(function (error, result) {
@@ -231,6 +310,7 @@ describe('Application life cycle test', function () {
});
it('can login', login);
it('can send mail', sendMail);
it('can set avatar', setAvatar);
it('can get avatar', checkAvatar);
@@ -245,12 +325,16 @@ describe('Application life cycle test', function () {
it('can add and push a file', pushFile);
it('can edit file', editFile);
it('can add custom file', addCustomFile);
it('can check custom file', checkCustomFile);
it('can restart app', function (done) {
execSync('cloudron restart --wait');
execSync('cloudron restart --wait --app ' + app.id);
done();
});
it('can clone the url', checkCloneUrl);
it('can login', login);
it('displays correct clone url', checkCloneUrl);
it('can clone the url', cloneRepo);
it('file exists in repo', fileExists);
@@ -262,13 +346,14 @@ describe('Application life cycle test', function () {
execSync('cloudron restore --app ' + app.id, { cwd: path.resolve(__dirname, '..'), stdio: 'inherit' });
});
it('can login', login);
it('can get avatar', checkAvatar);
it('can clone the url', cloneRepo);
it('file exists in repo', function () { expect(fs.existsSync(repodir + '/newfile')).to.be(true); });
it('move to different location', function () {
browser.manage().deleteAllCookies();
execSync('cloudron configure --wait --location ' + LOCATION + '2', { cwd: path.resolve(__dirname, '..'), stdio: 'inherit' });
//browser.manage().deleteAllCookies(); // commented because of error "'Network.deleteCookie' wasn't found"
execSync('cloudron configure --wait --location ' + LOCATION + '2 --app ' + app.id, { cwd: path.resolve(__dirname, '..'), stdio: 'inherit' });
var inspect = JSON.parse(execSync('cloudron inspect'));
app = inspect.apps.filter(function (a) { return a.location === LOCATION + '2'; })[0];
expect(app).to.be.an('object');
@@ -317,6 +402,8 @@ describe('Application life cycle test', function () {
execSync('cloudron install --wait --app ' + app.id, { cwd: path.resolve(__dirname, '..'), stdio: 'inherit' });
});
it('can login', login);
it('can send mail', sendMail);
it('can get avatar', checkAvatar);
it('can clone the url', cloneRepo);
it('file exists in cloned repo', fileExists);