Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
PUBLIC
/
surfer-okd
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit 18b1ace1
authored
Jan 05, 2020
by
Johannes Zellner
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Bring tests up-to-date
1 parent
6ce404d6
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
34 additions
and
53 deletions
test/test.js
test/test.js
View file @
18b1ace
...
...
@@ -12,43 +12,34 @@ var execSync = require('child_process').execSync,
path
=
require
(
'path'
),
util
=
require
(
'util'
),
superagent
=
require
(
'superagent'
),
webdriver
=
require
(
'selenium-webdriver'
);
var
by
=
webdriver
.
By
,
until
=
webdriver
.
until
;
{
Builder
,
By
,
until
}
=
require
(
'selenium-webdriver'
),
{
Options
}
=
require
(
'selenium-webdriver/chrome'
);
if
(
!
process
.
env
.
USERNAME
||
!
process
.
env
.
PASSWORD
)
{
console
.
log
(
'USERNAME and PASSWORD env vars need to be set'
);
process
.
exit
(
1
);
}
const
EXEC_OPTIONS
=
{
cwd
:
path
.
resolve
(
__dirname
,
'..'
),
stdio
:
'inherit'
};
describe
(
'Application life cycle test'
,
function
()
{
this
.
timeout
(
0
);
var
browser
;
const
EXEC_OPTIONS
=
{
cwd
:
path
.
resolve
(
__dirname
,
'..'
),
stdio
:
'inherit'
};
const
LOCATION
=
'test'
;
const
TEST_TIMEOUT
=
10000
;
const
TEST_FILE_NAME_0
=
'index.html'
;
const
TEST_FILE_NAME_1
=
'test.txt'
;
before
(
function
(
done
)
{
browser
=
new
webdriver
.
Builder
()
.
forBrowser
(
'chrome'
)
// .setChromeOptions(new chrome.Options().addArguments(['no-sandbox', 'headless']))
.
build
();
var
app
;
var
browser
;
done
();
before
(
function
()
{
browser
=
new
Builder
().
forBrowser
(
'chrome'
).
setChromeOptions
(
new
Options
().
windowSize
({
width
:
1280
,
height
:
1024
})).
build
();
});
after
(
function
(
done
)
{
after
(
function
()
{
browser
.
quit
();
done
();
});
var
LOCATION
=
'test'
;
var
TEST_TIMEOUT
=
10000
;
var
TEST_FILE_NAME_0
=
'index.html'
;
var
TEST_FILE_NAME_1
=
'test.txt'
;
var
app
;
function
waitForElement
(
elem
)
{
return
browser
.
wait
(
until
.
elementLocated
(
elem
),
TEST_TIMEOUT
).
then
(
function
()
{
return
browser
.
wait
(
until
.
elementIsVisible
(
browser
.
findElement
(
elem
)),
TEST_TIMEOUT
);
...
...
@@ -60,12 +51,12 @@ describe('Application life cycle test', function () {
browser
.
manage
().
deleteAllCookies
();
browser
.
get
(
'https://'
+
app
.
fqdn
+
'/_admin'
);
waitForElement
(
b
y
.
id
(
'loginUsernameInput'
)).
then
(
function
()
{
browser
.
findElement
(
b
y
.
id
(
'loginUsernameInput'
)).
sendKeys
(
process
.
env
.
USERNAME
);
browser
.
findElement
(
b
y
.
id
(
'loginPasswordInput'
)).
sendKeys
(
process
.
env
.
PASSWORD
);
browser
.
findElement
(
b
y
.
id
(
'loginSubmitButton'
)).
click
();
waitForElement
(
B
y
.
id
(
'loginUsernameInput'
)).
then
(
function
()
{
browser
.
findElement
(
B
y
.
id
(
'loginUsernameInput'
)).
sendKeys
(
process
.
env
.
USERNAME
);
browser
.
findElement
(
B
y
.
id
(
'loginPasswordInput'
)).
sendKeys
(
process
.
env
.
PASSWORD
);
browser
.
findElement
(
B
y
.
id
(
'loginSubmitButton'
)).
click
();
waitForElement
(
b
y
.
id
(
'burgerMenuButton'
)).
then
(
function
()
{
waitForElement
(
B
y
.
id
(
'burgerMenuButton'
)).
then
(
function
()
{
done
();
});
});
...
...
@@ -74,16 +65,16 @@ describe('Application life cycle test', function () {
function
logout
(
done
)
{
browser
.
get
(
'https://'
+
app
.
fqdn
+
'/_admin'
);
waitForElement
(
b
y
.
id
(
'burgerMenuButton'
)).
then
(
function
()
{
browser
.
findElement
(
b
y
.
id
(
'burgerMenuButton'
)).
click
();
waitForElement
(
B
y
.
id
(
'burgerMenuButton'
)).
then
(
function
()
{
browser
.
findElement
(
B
y
.
id
(
'burgerMenuButton'
)).
click
();
// wait for open animation
browser
.
sleep
(
5000
);
waitForElement
(
b
y
.
id
(
'logoutButton'
)).
then
(
function
()
{
browser
.
findElement
(
b
y
.
id
(
'logoutButton'
)).
click
();
waitForElement
(
B
y
.
id
(
'logoutButton'
)).
then
(
function
()
{
browser
.
findElement
(
B
y
.
id
(
'logoutButton'
)).
click
();
waitForElement
(
b
y
.
id
(
'loginUsernameInput'
)).
then
(
function
()
{
waitForElement
(
B
y
.
id
(
'loginUsernameInput'
)).
then
(
function
()
{
done
();
});
});
...
...
@@ -93,7 +84,7 @@ describe('Application life cycle test', function () {
function
checkFileIsListed
(
name
,
done
)
{
browser
.
get
(
'https://'
+
app
.
fqdn
+
'/_admin'
);
waitForElement
(
b
y
.
xpath
(
'//*[text()="'
+
name
+
'"]'
)).
then
(
function
()
{
waitForElement
(
B
y
.
xpath
(
'//*[text()="'
+
name
+
'"]'
)).
then
(
function
()
{
done
();
});
}
...
...
@@ -101,7 +92,7 @@ describe('Application life cycle test', function () {
function
checkFileIsPresent
(
done
)
{
browser
.
get
(
'https://'
+
app
.
fqdn
+
'/'
+
TEST_FILE_NAME_0
);
waitForElement
(
b
y
.
xpath
(
'//*[text()="test"]'
)).
then
(
function
()
{
waitForElement
(
B
y
.
xpath
(
'//*[text()="test"]'
)).
then
(
function
()
{
done
();
});
}
...
...
@@ -109,7 +100,7 @@ describe('Application life cycle test', function () {
function
checkIndexFileIsServedUp
(
done
)
{
browser
.
get
(
'https://'
+
app
.
fqdn
);
waitForElement
(
b
y
.
xpath
(
'//*[text()="test"]'
)).
then
(
function
()
{
waitForElement
(
B
y
.
xpath
(
'//*[text()="test"]'
)).
then
(
function
()
{
done
();
});
}
...
...
@@ -135,19 +126,13 @@ describe('Application life cycle test', function () {
done
();
}
xit
(
'build app'
,
function
()
{
execSync
(
'cloudron build'
,
EXEC_OPTIONS
);
});
xit
(
'build app'
,
function
()
{
execSync
(
'cloudron build'
,
EXEC_OPTIONS
);
});
it
(
'install app'
,
function
()
{
execSync
(
'cloudron install --new --wait --location '
+
LOCATION
,
EXEC_OPTIONS
);
});
it
(
'install app'
,
function
()
{
execSync
(
`cloudron install --location
${
LOCATION
}
`
,
EXEC_OPTIONS
);
});
it
(
'can get app information'
,
function
()
{
var
inspect
=
JSON
.
parse
(
execSync
(
'cloudron inspect'
));
app
=
inspect
.
apps
.
filter
(
function
(
a
)
{
return
a
.
location
===
LOCATION
;
})[
0
];
expect
(
app
).
to
.
be
.
an
(
'object'
);
});
...
...
@@ -159,20 +144,14 @@ describe('Application life cycle test', function () {
it
(
'file is served up'
,
checkIndexFileIsServedUp
);
it
(
'can upload second file'
,
uploadFile
.
bind
(
null
,
TEST_FILE_NAME_1
));
it
(
'file is listed'
,
checkFileIsListed
.
bind
(
null
,
TEST_FILE_NAME_1
));
it
(
'can delete second file with cli'
,
function
(
done
)
{
it
(
'can delete second file with cli'
,
function
()
{
execSync
(
path
.
join
(
__dirname
,
'/../cli/surfer.js'
)
+
' del '
+
TEST_FILE_NAME_1
,
{
stdio
:
'inherit'
}
);
done
();
});
it
(
'second file is gone'
,
checkFileIsGone
.
bind
(
null
,
TEST_FILE_NAME_1
));
it
(
'can logout'
,
logout
);
it
(
'backup app'
,
function
()
{
execSync
(
'cloudron backup create --app '
+
app
.
id
,
EXEC_OPTIONS
);
});
it
(
'restore app'
,
function
()
{
execSync
(
'cloudron restore --app '
+
app
.
id
,
EXEC_OPTIONS
);
});
it
(
'backup app'
,
function
()
{
execSync
(
`cloudron backup create --app
${
app
.
id
}
`
,
EXEC_OPTIONS
);
});
it
(
'restore app'
,
function
()
{
execSync
(
`cloudron restore --app
${
app
.
id
}
`
,
EXEC_OPTIONS
);
});
it
(
'can login'
,
login
);
it
(
'file is listed'
,
checkFileIsListed
.
bind
(
null
,
TEST_FILE_NAME_0
));
...
...
@@ -186,10 +165,12 @@ describe('Application life cycle test', function () {
// ensure we don't hit NXDOMAIN in the mean time
browser
.
get
(
'about:blank'
).
then
(
function
()
{
execSync
(
'cloudron configure --location '
+
LOCATION
+
'2 --app '
+
app
.
id
,
EXEC_OPTIONS
);
execSync
(
`cloudron configure --location
${
LOCATION
}
2 --app
${
app
.
id
}
`
,
EXEC_OPTIONS
);
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'
);
done
();
});
});
...
...
@@ -203,7 +184,7 @@ describe('Application life cycle test', function () {
it
(
'uninstall app'
,
function
(
done
)
{
// ensure we don't hit NXDOMAIN in the mean time
browser
.
get
(
'about:blank'
).
then
(
function
()
{
execSync
(
'cloudron uninstall --app '
+
app
.
id
,
EXEC_OPTIONS
);
execSync
(
`cloudron uninstall --app
${
app
.
id
}
`
,
EXEC_OPTIONS
);
done
();
});
});
...
...
Write
Preview
Markdown
is supported
Attach a file
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to post a comment