1
0
Fork 0
mirror of https://github.com/documize/community.git synced 2025-07-22 14:49:42 +02:00

Merge pull request #25 from documize/tests

Fix Broken Tests
This commit is contained in:
Harvey Kandola 2016-07-19 10:09:55 -07:00 committed by GitHub
commit 3d450bcbc7
20 changed files with 626 additions and 468 deletions

View file

@ -32,6 +32,7 @@ export default Ember.Component.extend({
targetOffset: "10px 0",
constrainToWindow: true,
constrainToScrollParent: true,
tether: Ember.inject.service(),
hasSecondButton: Ember.computed('button2', 'color2', function () {
return is.not.empty(this.get('button2')) && is.not.empty(this.get('color2'));
@ -43,9 +44,10 @@ export default Ember.Component.extend({
didInsertElement() {
this._super(...arguments);
// TODO: refactor to eliminate self
let self = this;
let drop = new Drop({
let drop = this.get('tether').createDrop({
target: document.getElementById(self.get('target')),
content: self.$(".dropdown-dialog")[0],
classes: 'drop-theme-basic',
@ -65,8 +67,7 @@ export default Ember.Component.extend({
remove: true
});
self.set('drop', drop);
if (drop) {
drop.on('open', function () {
if (is.not.null(self.get("focusOn"))) {
document.getElementById(self.get("focusOn")).focus();
@ -80,15 +81,24 @@ export default Ember.Component.extend({
self.attrs.onOpenCallback(drop);
}
});
self.set('drop', drop);
}
},
willDestroyElement() {
this.get('drop').destroy();
let drop = this.get('drop');
if (drop) {
drop.destroy();
}
},
actions: {
onCancel() {
this.get('drop').close();
let drop = this.get('drop');
if (drop) {
drop.close();
}
},
onAction() {
@ -98,8 +108,9 @@ export default Ember.Component.extend({
let close = this.attrs.onAction();
if (close) {
this.get('drop').close();
let drop = this.get('drop');
if (close && drop) {
drop.close();
}
},
@ -110,8 +121,9 @@ export default Ember.Component.extend({
let close = this.attrs.onAction2();
if (close) {
this.get('drop').close();
let drop = this.get('drop');
if (close && drop) {
drop.close();
}
}
}

View file

@ -18,6 +18,7 @@ export default Ember.Component.extend({
position: 'bottom right',
contentId: "",
drop: null,
tether: Ember.inject.service(),
didReceiveAttrs() {
this.set("contentId", 'dropdown-menu-' + stringUtil.makeId(10));
@ -31,7 +32,7 @@ export default Ember.Component.extend({
this._super(...arguments);
let self = this;
let drop = new Drop({
let drop = this.get('tether').createDrop({
target: document.getElementById(self.get('target')),
content: self.$(".dropdown-menu")[0],
classes: 'drop-theme-menu',
@ -47,6 +48,9 @@ export default Ember.Component.extend({
},
willDestroyElement() {
this.get('drop').destroy();
let drop = this.get('drop');
if (drop) {
drop.destroy();
}
}
});

View file

@ -0,0 +1,33 @@
// Copyright 2016 Documize Inc. <legal@documize.com>. All rights reserved.
//
// This software (Documize Community Edition) is licensed under
// GNU AGPL v3 http://www.gnu.org/licenses/agpl-3.0.en.html
//
// You can operate outside the AGPL restrictions by purchasing
// Documize Enterprise Edition and obtaining a commercial license
// by contacting <sales@documize.com>.
//
// https://documize.com
import Ember from 'ember';
/**
* This is a work around problems that tether introduces into testing.
* TODO: remove this code and refactor in favour of ember-tether
*/
export default Ember.Service.extend({
createDrop() {
if (Ember.testing) {
return;
}
return new Drop(...arguments);
},
createTooltip() {
if (Ember.testing) {
return;
}
return new Tooltip(...arguments);
}
});

View file

@ -1,3 +1,14 @@
// Copyright 2016 Documize Inc. <legal@documize.com>. All rights reserved.
//
// This software (Documize Community Edition) is licensed under
// GNU AGPL v3 http://www.gnu.org/licenses/agpl-3.0.en.html
//
// You can operate outside the AGPL restrictions by purchasing
// Documize Enterprise Edition and obtaining a commercial license
// by contacting <sales@documize.com>.
//
// https://documize.com
import Mirage from 'ember-cli-mirage';
export default function () {
@ -13,48 +24,6 @@ export default function () {
return schema.db.meta[0];
});
this.get('/public/validate', function (schema, request) {
let serverToken = request.queryParams.token;
let token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkb21haW4iOiIiLCJleHAiOjE0NjQwMjM2NjcsImlzcyI6IkRvY3VtaXplIiwib3JnIjoiVnpNdXlFd18zV3FpYWZjRCIsInN1YiI6IndlYmFwcCIsInVzZXIiOiJWek11eUV3XzNXcWlhZmNFIn0.NXZ6bo8mtvdZF_b9HavbidVUJqhmBA1zr0fSAPvbah0";
if (token = serverToken) {
return {
"id": "VzMuyEw_3WqiafcE",
"created": "2016-05-11T15:08:24Z",
"revised": "2016-05-11T15:08:24Z",
"firstname": "Lennex",
"lastname": "Zinyando",
"email": "brizdigital@gmail.com",
"initials": "LZ",
"active": true,
"editor": true,
"admin": true,
"accounts": [{
"id": "VzMuyEw_3WqiafcF",
"created": "2016-05-11T15:08:24Z",
"revised": "2016-05-11T15:08:24Z",
"admin": true,
"editor": true,
"userId": "VzMuyEw_3WqiafcE",
"orgId": "VzMuyEw_3WqiafcD",
"company": "EmberSherpa",
"title": "EmberSherpa",
"message": "This Documize instance contains all our team documentation",
"domain": ""
}]
};
}
});
this.get('/users/0/permissions', function () {
return [{
"folderId": "VzMygEw_3WrtFzto",
"userId": "",
"canView": true,
"canEdit": false
}];
});
this.get('/templates', function () {
return [];
});
@ -63,55 +32,231 @@ export default function () {
let folder_id = request.queryParams.folder;
if (folder_id = "VzMuyEw_3WqiafcG") {
return schema.db.documents.where({ folderId: folder_id });
}
if (folder_id = 'V0Vy5Uw_3QeDAMW9') {
return null;
}
});
this.get('/documents/:id', function (schema, request) {
let id = request.params.id;
return schema.db.documents.where({ id: `${id}` })[0];
});
this.get('/documents/:id/pages', function () {
return [{
"id": "VzMwX0w_3WrtFztd",
"created": "2016-05-11T13:15:11Z",
"revised": "2016-05-11T13:22:16Z",
"id": "VzMzBUw_3WrtFztw",
"created": "2016-05-11T13:26:29Z",
"revised": "2016-05-11T13:26:29Z",
"orgId": "VzMuyEw_3WqiafcD",
"documentId": "VzMzBUw_3WrtFztv",
"userId": "VzMuyEw_3WqiafcE",
"contentType": "wysiwyg",
"level": 1,
"sequence": 1024,
"title": "README",
"body": "",
"revisions": 0
}, {
"id": "VzMzBUw_3WrtFztx",
"created": "2016-05-11T13:26:29Z",
"revised": "2016-05-11T13:26:29Z",
"orgId": "VzMuyEw_3WqiafcD",
"documentId": "VzMzBUw_3WrtFztv",
"userId": "VzMuyEw_3WqiafcE",
"contentType": "wysiwyg",
"level": 2,
"sequence": 2048,
"title": "To Document / Instructions ",
"body": "\n\n\u003cp\u003eThe build process around go get github.com/elazarl/go-bindata-assetfs\u003c/p\u003e\n\n",
"revisions": 0
}, {
"id": "VzMzBUw_3WrtFzty",
"created": "2016-05-11T13:26:29Z",
"revised": "2016-05-11T13:26:29Z",
"orgId": "VzMuyEw_3WqiafcD",
"documentId": "VzMzBUw_3WrtFztv",
"userId": "VzMuyEw_3WqiafcE",
"contentType": "wysiwyg",
"level": 3,
"sequence": 3072,
"title": "GO ",
"body": "\n\n\u003cp\u003egobin / go env\u003c/p\u003e\n\n",
"revisions": 0
}, {
"id": "VzMzBUw_3WrtFztz",
"created": "2016-05-11T13:26:29Z",
"revised": "2016-05-11T13:26:29Z",
"orgId": "VzMuyEw_3WqiafcD",
"documentId": "VzMzBUw_3WrtFztv",
"userId": "VzMuyEw_3WqiafcE",
"contentType": "wysiwyg",
"level": 3,
"sequence": 4096,
"title": "go-bindata-assetsfs ",
"body": "\n\n\u003cp\u003emake sure you do install cmd from inside go-* folder where main.go lives\u003c/p\u003e\n\n",
"revisions": 0
}, {
"id": "VzMzBUw_3WrtFzt0",
"created": "2016-05-11T13:26:29Z",
"revised": "2016-05-11T13:26:29Z",
"orgId": "VzMuyEw_3WqiafcD",
"documentId": "VzMzBUw_3WrtFztv",
"userId": "VzMuyEw_3WqiafcE",
"contentType": "wysiwyg",
"level": 3,
"sequence": 5120,
"title": "SSL ",
"body": "\n\n\u003cp\u003eselfcert generation and avoiding red lock\u003c/p\u003e\n\n\u003cp\u003e\u003ca href=\"https://www.accuweaver.com/2014/09/19/make-chrome-accept-a-self-signed-certificate-on-osx/\"\u003ehttps://www.accuweaver.com/2014/09/19/make-chrome-accept-a-self-signed-certificate-on-osx/\u003c/a\u003e\u003c/p\u003e\n\n\u003cp\u003echrome://restart\u003c/p\u003e\n\n\u003cp\u003ego run generate_cert.go -host demo1.dev\u003c/p\u003e\n\n\u003cp\u003eport number not required\nbut browser restart is!\u003c/p\u003e\n\n",
"revisions": 0
}, {
"id": "VzMzBUw_3WrtFzt1",
"created": "2016-05-11T13:26:29Z",
"revised": "2016-05-11T13:26:29Z",
"orgId": "VzMuyEw_3WqiafcD",
"documentId": "VzMzBUw_3WrtFztv",
"userId": "VzMuyEw_3WqiafcE",
"contentType": "wysiwyg",
"level": 3,
"sequence": 6144,
"title": "after clone ",
"body": "\n\n\u003cul\u003e\n\u003cli\u003ecd app\u003c/li\u003e\n\u003cli\u003enpm install\u003c/li\u003e\n\u003cli\u003ebower install\u003c/li\u003e\n\u003cli\u003ecd ..\u003c/li\u003e\n\u003cli\u003e./build.sh\u003c/li\u003e\n\u003c/ul\u003e\n",
"revisions": 0
}, {
"id": "V1qnNUw_3QRDs13j",
"created": "2016-06-10T11:40:37Z",
"revised": "2016-06-10T11:40:37Z",
"orgId": "VzMuyEw_3WqiafcD",
"documentId": "VzMzBUw_3WrtFztv",
"userId": "VzMuyEw_3WqiafcE",
"contentType": "github",
"level": 2,
"sequence": 12288,
"title": "GitHub Section",
"body": "\n\u003cdiv class=\"section-github-render\"\u003e\n\t\u003cp\u003eThere are 0 commits for branch \u003ca href=\"\"\u003e\u003c/a\u003e of repository \u003ca href=\"\"\u003e.\u003c/a\u003e\u003c/p\u003e\n\t\u003cdiv class=\"github-board\"\u003e\n\t\t\n\t\u003c/div\u003e\n\u003c/div\u003e\n",
"revisions": 0
}, {
"id": "V1qqJkw_3RXs3w1D",
"created": "2016-06-10T11:53:10Z",
"revised": "2016-06-10T11:53:10Z",
"orgId": "VzMuyEw_3WqiafcD",
"documentId": "VzMzBUw_3WrtFztv",
"userId": "VzMuyEw_3WqiafcE",
"contentType": "github",
"level": 2,
"sequence": 24576,
"title": "GitHub Section",
"body": "\n\u003cdiv class=\"section-github-render\"\u003e\n\t\u003cp\u003eThere are 0 commits for branch \u003ca href=\"\"\u003e\u003c/a\u003e of repository \u003ca href=\"\"\u003e.\u003c/a\u003e\u003c/p\u003e\n\t\u003cdiv class=\"github-board\"\u003e\n\t\t\n\t\u003c/div\u003e\n\u003c/div\u003e\n",
"revisions": 0
}];
});
this.post('/templates/0/folder/VzMuyEw_3WqiafcG', function (schema, request) {
let type = request.queryParams.type;
if (type === 'saved') {
return schema.db.documents.insert({
"id": "V4y7jkw_3QvCDSeS",
"created": "2016-07-18T11:20:47Z",
"revised": "2016-07-18T11:20:47Z",
"orgId": "VzMuyEw_3WqiafcD",
"folderId": "VzMuyEw_3WqiafcG",
"userId": "VzMuyEw_3WqiafcE",
"job": "",
"location": "template-0",
"name": "Empty Document",
"excerpt": "My test document",
"name": "New Document",
"excerpt": "A new document",
"tags": "",
"template": false
}, {
"id": "VzMvJEw_3WqiafcI",
"created": "2016-05-11T13:09:56Z",
"revised": "2016-05-11T13:09:56Z",
"orgId": "VzMuyEw_3WqiafcD",
"folderId": "VzMuyEw_3WqiafcG",
"userId": "VzMuyEw_3WqiafcE",
"job": "0bf9b076-cb74-4e8e-75be-8ee2d24a8171",
"location": "/var/folders/d6/kr81d2fs5bsbm8rz2p092fy80000gn/T/documize/_uploads/0bf9b076-cb74-4e8e-75be-8ee2d24a8171/README.md",
"name": "README",
"excerpt": "To Document/ Instructions. GO. go- bindata- assetsfs. SSL.",
"tags": "",
"template": false
}];
} else if (folder_id = "VzMygEw_3WrtFzto") {
return {
"id": "VzMygEw_3WrtFzto",
"created": "2016-05-11T13:24:17Z",
"revised": "2016-05-11T13:25:51Z",
"name": "Test",
"orgId": "VzMuyEw_3WqiafcD",
"userId": "VzMuyEw_3WqiafcE",
"folderType": 1
};
} else if (folder_id = 'V0Vy5Uw_3QeDAMW9') {
return null;
});
}
});
this.delete('/documents/:id', function (schema, request) {
let id = request.params.id;
return schema.db.documents.remove(id);
});
this.get('/documents/:id/attachments', function () {
return {};
});
this.get('/documents/:id/meta', function () {
return {
"viewers": [{
"userId": "VzMuyEw_3WqiafcE",
"created": "2016-07-14T13:46:24Z",
"firstname": "Lennex",
"lastname": "Zinyando"
}],
"editors": [{
"pageId": "V1qqJkw_3RXs3w1D",
"userId": "VzMuyEw_3WqiafcE",
"action": "add-page",
"created": "2016-06-10T11:53:10Z",
"firstname": "Lennex",
"lastname": "Zinyando"
}, {
"pageId": "V1qnNUw_3QRDs13j",
"userId": "VzMuyEw_3WqiafcE",
"action": "add-page",
"created": "2016-06-10T11:40:37Z",
"firstname": "Lennex",
"lastname": "Zinyando"
}, {
"pageId": "VzMzBUw_3WrtFztw",
"userId": "VzMuyEw_3WqiafcE",
"action": "add-page",
"created": "2016-05-11T13:26:29Z",
"firstname": "Lennex",
"lastname": "Zinyando"
}, {
"pageId": "VzMzBUw_3WrtFztx",
"userId": "VzMuyEw_3WqiafcE",
"action": "add-page",
"created": "2016-05-11T13:26:29Z",
"firstname": "Lennex",
"lastname": "Zinyando"
}, {
"pageId": "VzMzBUw_3WrtFzty",
"userId": "VzMuyEw_3WqiafcE",
"action": "add-page",
"created": "2016-05-11T13:26:29Z",
"firstname": "Lennex",
"lastname": "Zinyando"
}, {
"pageId": "VzMzBUw_3WrtFztz",
"userId": "VzMuyEw_3WqiafcE",
"action": "add-page",
"created": "2016-05-11T13:26:29Z",
"firstname": "Lennex",
"lastname": "Zinyando"
}, {
"pageId": "VzMzBUw_3WrtFzt0",
"userId": "VzMuyEw_3WqiafcE",
"action": "add-page",
"created": "2016-05-11T13:26:29Z",
"firstname": "Lennex",
"lastname": "Zinyando"
}, {
"pageId": "VzMzBUw_3WrtFzt1",
"userId": "VzMuyEw_3WqiafcE",
"action": "add-page",
"created": "2016-05-11T13:26:29Z",
"firstname": "Lennex",
"lastname": "Zinyando"
}]
};
});
this.get('/folders', function (schema) {
return schema.db.folders;
});
this.post('/folders', function (schema, request) {
var name = JSON.parse(request.requestBody).name;
let newFolder = {
let folder = {
"id": "V0Vy5Uw_3QeDAMW9",
"created": "2016-05-25T09:39:49Z",
"revised": "2016-05-25T09:39:49Z",
@ -121,43 +266,19 @@ export default function () {
"folderType": 2
};
let folder = schema.db.folders.insert(newFolder);
return folder;
return schema.db.folders.insert(folder);
});
this.post('/public/authenticate', (schema, request) => {
let authorization = request.requestHeaders.Authorization;
let expectedAuthorization = "Basic OmJyaXpkaWdpdGFsQGdtYWlsLmNvbTp6aW55YW5kbzEyMw==";
let token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkb21haW4iOiIiLCJleHAiOjE0NjQwMjM2NjcsImlzcyI6IkRvY3VtaXplIiwib3JnIjoiVnpNdXlFd18zV3FpYWZjRCIsInN1YiI6IndlYmFwcCIsInVzZXIiOiJWek11eUV3XzNXcWlhZmNFIn0.NXZ6bo8mtvdZF_b9HavbidVUJqhmBA1zr0fSAPvbah0";
let user = schema.db.users.where({ id: "VzMuyEw_3WqiafcE" });
if (expectedAuthorization === authorization) {
console.log("SSO login success");
return {
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkb21haW4iOiIiLCJleHAiOjE0NjQwMjM2NjcsImlzcyI6IkRvY3VtaXplIiwib3JnIjoiVnpNdXlFd18zV3FpYWZjRCIsInN1YiI6IndlYmFwcCIsInVzZXIiOiJWek11eUV3XzNXcWlhZmNFIn0.NXZ6bo8mtvdZF_b9HavbidVUJqhmBA1zr0fSAPvbah0",
"user": {
"id": "VzMuyEw_3WqiafcE",
"created": "2016-05-11T15:08:24Z",
"revised": "2016-05-11T15:08:24Z",
"firstname": "Lennex",
"lastname": "Zinyando",
"email": "brizdigital@gmail.com",
"initials": "LZ",
"active": true,
"editor": true,
"admin": true,
"accounts": [{
"id": "VzMuyEw_3WqiafcF",
"created": "2016-05-11T15:08:24Z",
"revised": "2016-05-11T15:08:24Z",
"admin": true,
"editor": true,
"userId": "VzMuyEw_3WqiafcE",
"orgId": "VzMuyEw_3WqiafcD",
"company": "EmberSherpa",
"title": "EmberSherpa",
"message": "This Documize instance contains all our team documentation",
"domain": ""
}]
}
"token": `${token}`,
"user": user[0]
};
}
@ -166,78 +287,49 @@ export default function () {
}
return {
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkb21haW4iOiIiLCJleHAiOjE0NjQwMjM2NjcsImlzcyI6IkRvY3VtaXplIiwib3JnIjoiVnpNdXlFd18zV3FpYWZjRCIsInN1YiI6IndlYmFwcCIsInVzZXIiOiJWek11eUV3XzNXcWlhZmNFIn0.NXZ6bo8mtvdZF_b9HavbidVUJqhmBA1zr0fSAPvbah0",
"user": {
"token": `${token}`,
"user": user[0]
};
});
this.get('/users/:id/permissions', (schema, request) => {
let userId = request.params.id;
return schema.db.permissions.where({ userId: `${userId}` });
});
this.get('/folders/:id/permissions', (schema, request) => {
let id = request.params.id;
return schema.db.folderPermissions.where({ id: `${id}` });
});
this.put('/folders/:id/permissions', () => {
// let id = request.params.id;
// let attrs = JSON.parse(request.requestBody).Roles;
// return schema.db.folderPermissions.update('VzMygEw_3WrtFzto', attrs[0]);
});
this.get('/users/folder/:id', () => {
return [{
"id": "VzMuyEw_3WqiafcE",
"created": "2016-05-11T15:08:24Z",
"revised": "2016-05-11T15:08:24Z",
"revised": "2016-07-04T10:24:41Z",
"firstname": "Lennex",
"lastname": "Zinyando",
"email": "brizdigital@gmail.com",
"initials": "LZ",
"active": true,
"editor": true,
"admin": true,
"accounts": [{
"id": "VzMuyEw_3WqiafcF",
"created": "2016-05-11T15:08:24Z",
"revised": "2016-05-11T15:08:24Z",
"admin": true,
"editor": true,
"userId": "VzMuyEw_3WqiafcE",
"orgId": "VzMuyEw_3WqiafcD",
"company": "EmberSherpa",
"title": "EmberSherpa",
"message": "This Documize instance contains all our team documentation",
"domain": ""
}]
"editor": false,
"admin": false,
"accounts": null
}];
});
this.get('/sections/refresh', (schema, request) => {
let documentID = request.queryParams.documentID;
if (documentID) {
return {};
}
};
});
this.get('/users/VzMuyEw_3WqiafcE/permissions', (schema) => {
return schema.db.permissions;
});
this.get('/folders/VzMuyEw_3WqiafcG/permissions', () => {
return [{
"folderId": "VzMuyEw_3WqiafcG",
"userId": "VzMuyEw_3WqiafcE",
"canView": true,
"canEdit": true
}];
});
this.put('/folders/VzMygEw_3WrtFzto/permissions', () => {
return [{
"orgId": "VzMuyEw_3WqiafcD",
"folderId": "VzMygEw_3WrtFzto",
"userId": "",
"canEdit": true,
"canView": true
}, {
"orgId": "VzMuyEw_3WqiafcD",
"folderId": "VzMygEw_3WrtFzto",
"userId": "VzMyp0w_3WrtFztq",
"canEdit": false,
"canView": false
}, {
"orgId": "",
"folderId": "VzMygEw_3WrtFzto",
"userId": "VzMuyEw_3WqiafcE",
"canEdit": true,
"canView": true
}];
});
this.get('/folders/VzMygEw_3WrtFzto/permissions', () => {
return [{
"folderId": "VzMygEw_3WrtFzto",
"userId": "VzMuyEw_3WqiafcE",
"canView": true,
"canEdit": true
}];
});
this.put('/folders/:id', (schema, request) => {
@ -264,18 +356,8 @@ export default function () {
return schema.db.folders.find(id);
});
this.get('/organizations/VzMuyEw_3WqiafcD', () => {
return {
"id": "VzMuyEw_3WqiafcD",
"created": "2016-05-11T15:08:24Z",
"revised": "2016-05-23T11:23:20Z",
"title": "EmberSherpa",
"message": "This Documize instance contains all our team documentation",
"url": "",
"domain": "",
"email": "brizdigital@gmail.com",
"allowAnonymousAccess": false
};
this.get('/organizations/VzMuyEw_3WqiafcD', (schema) => {
return schema.db.organizations[0];
});
this.put('/organizations/VzMuyEw_3WqiafcD', (schema, request) => {
@ -283,69 +365,15 @@ export default function () {
let message = JSON.parse(request.requestBody).title;
let allowAnonymousAccess = JSON.parse(request.requestBody).allowAnonymousAccess;
return {
"id": "VzMuyEw_3WqiafcD",
"created": "2016-05-11T15:08:24Z",
"revised": "2016-05-23T11:23:20Z",
"title": `${title}`,
"message": `${message}`,
"url": "",
"domain": "",
"email": "brizdigital@gmail.com",
"allowAnonymousAccess": `${allowAnonymousAccess}`
};
return schema.db.organizations.update('VzMuyEw_3WqiafcD', {
title: `${title}`,
message: `${message}`,
allowAnonymousAccess: `${allowAnonymousAccess}`
});
});
this.get('/users', () => {
return [{
"id": "VzMyp0w_3WrtFztq",
"created": "2016-05-11T13:24:55Z",
"revised": "2016-05-11T13:33:47Z",
"firstname": "Len",
"lastname": "Random",
"email": "zinyando@gmail.com",
"initials": "LR",
"active": true,
"editor": true,
"admin": false,
"accounts": [{
"id": "VzMyp0w_3WrtFztr",
"created": "2016-05-11T13:24:55Z",
"revised": "2016-05-11T13:24:55Z",
"admin": false,
"editor": true,
"userId": "VzMyp0w_3WrtFztq",
"orgId": "VzMuyEw_3WqiafcD",
"company": "EmberSherpa",
"title": "EmberSherpa",
"message": "This Documize instance contains all our team documentation",
"domain": ""
}]
}, {
"id": "VzMuyEw_3WqiafcE",
"created": "2016-05-11T15:08:24Z",
"revised": "2016-05-11T15:08:24Z",
"firstname": "Lennex",
"lastname": "Zinyando",
"email": "brizdigital@gmail.com",
"initials": "LZ",
"active": true,
"editor": true,
"admin": true,
"accounts": [{
"id": "VzMuyEw_3WqiafcF",
"created": "2016-05-11T15:08:24Z",
"revised": "2016-05-11T15:08:24Z",
"admin": true,
"editor": true,
"userId": "VzMuyEw_3WqiafcE",
"orgId": "VzMuyEw_3WqiafcD",
"company": "EmberSherpa",
"title": "EmberSherpa",
"message": "This Documize instance contains all our team documentation",
"domain": ""
}]
}];
this.get('/users', (schema) => {
return schema.db.users;
});
this.post('/users', (schema, request) => {
@ -353,7 +381,7 @@ export default function () {
let lastname = JSON.parse(request.requestBody).lastname;
let email = JSON.parse(request.requestBody).email;
return {
let user = {
"id": "V0RmtUw_3QeDAMW7",
"created": "2016-05-24T14:35:33Z",
"revised": "2016-05-24T14:35:33Z",
@ -378,35 +406,14 @@ export default function () {
"domain": ""
}]
};
return schema.db.users.insert(user);
});
this.get('/users/VzMuyEw_3WqiafcE', () => {
return {
"id": "VzMuyEw_3WqiafcE",
"created": "2016-05-11T15:08:24Z",
"revised": "2016-05-11T15:08:24Z",
"firstname": "Lennex",
"lastname": "Zinyando",
"email": "brizdigital@gmail.com",
"initials": "LZ",
"active": true,
"editor": true,
"admin": true,
"accounts": [{
"id": "VzMuyEw_3WqiafcF",
"created": "2016-05-11T15:08:24Z",
"revised": "2016-05-11T15:08:24Z",
"admin": true,
"editor": true,
"userId": "VzMuyEw_3WqiafcE",
"orgId": "VzMuyEw_3WqiafcD",
"company": "EmberSherpa",
"title": "EmberSherpa",
"message": "This Documize instance contains all our team documentation",
"domain": ""
}]
};
this.get('/users/:id', (schema, request) => {
let id = request.params.id;
let user = schema.db.users.where({ id: `${id}` });
return user[0];
});
this.put('/users/VzMuyEw_3WqiafcE', (schema, request) => {
@ -414,31 +421,11 @@ export default function () {
let lastname = JSON.parse(request.requestBody).lastname;
let email = JSON.parse(request.requestBody).email;
return {
"id": "VzMuyEw_3WqiafcE",
"created": "2016-05-11T15:08:24Z",
"revised": "2016-05-11T15:08:24Z",
"firstname": `${firstname}`,
"lastname": `${lastname}`,
"email": `${email}`,
"initials": "LZ",
"active": true,
"editor": true,
"admin": true,
"accounts": [{
"id": "VzMuyEw_3WqiafcF",
"created": "2016-05-11T15:08:24Z",
"revised": "2016-05-11T15:08:24Z",
"admin": true,
"editor": true,
"userId": "VzMuyEw_3WqiafcE",
"orgId": "VzMuyEw_3WqiafcD",
"company": "EmberSherpa",
"title": "EmberSherpa",
"message": "This Documize instance contains all our team documentation",
"domain": ""
}]
};
return schema.db.users.update('VzMuyEw_3WqiafcE', {
firstname: `${firstname}`,
lastname: `${lastname}`,
email: `${email}`
});
});
this.post('/folders/VzMuyEw_3WqiafcG/invitation', () => {

View file

@ -1,9 +1,20 @@
// Copyright 2016 Documize Inc. <legal@documize.com>. All rights reserved.
//
// This software (Documize Community Edition) is licensed under
// GNU AGPL v3 http://www.gnu.org/licenses/agpl-3.0.en.html
//
// You can operate outside the AGPL restrictions by purchasing
// Documize Enterprise Edition and obtaining a commercial license
// by contacting <sales@documize.com>.
//
// https://documize.com
/*
This is an example factory definition.
Create more files in this directory to define additional factories.
*/
import Mirage/*, {faker} */ from 'ember-cli-mirage';
import Mirage /*, {faker} */ from 'ember-cli-mirage';
export default Mirage.Factory.extend({
// name: 'Pete', // strings

View file

@ -0,0 +1,27 @@
// Copyright 2016 Documize Inc. <legal@documize.com>. All rights reserved.
//
// This software (Documize Community Edition) is licensed under
// GNU AGPL v3 http://www.gnu.org/licenses/agpl-3.0.en.html
//
// You can operate outside the AGPL restrictions by purchasing
// Documize Enterprise Edition and obtaining a commercial license
// by contacting <sales@documize.com>.
//
// https://documize.com
import { Factory, faker } from 'ember-cli-mirage';
export default Factory.extend({
"id": faker.list.cycle("VzMwX0w_3WrtFztd", "VzMvJEw_3WqiafcI", "VzMzBUw_3WrtFztv"),
"created": "2016-05-11T13:15:11Z",
"revised": "2016-05-11T13:22:16Z",
"orgId": "VzMuyEw_3WqiafcD",
"folderId": "VzMuyEw_3WqiafcG",
"userId": "VzMuyEw_3WqiafcE",
"job": faker.list.cycle("", "0bf9b076-cb74-4e8e-75be-8ee2d24a8171", "3004c449-b053-49a6-4abc-72688136184d"),
"location": faker.list.cycle("template-0", "/var/folders/README.md", "/var/folders/d6/3004c449-b053-49a6-4abc-72688136184d/README.md"),
"name": faker.list.cycle("Empty Document", "README", "README"),
"excerpt": faker.list.cycle("My test document", "To Document/ Instructions. GO. go- bindata- assetsfs. SSL.", "To Document/ Instructions. GO. go- bindata- assetsfs. SSL."),
"tags": "",
"template": false
});

View file

@ -0,0 +1,19 @@
// Copyright 2016 Documize Inc. <legal@documize.com>. All rights reserved.
//
// This software (Documize Community Edition) is licensed under
// GNU AGPL v3 http://www.gnu.org/licenses/agpl-3.0.en.html
//
// You can operate outside the AGPL restrictions by purchasing
// Documize Enterprise Edition and obtaining a commercial license
// by contacting <sales@documize.com>.
//
// https://documize.com
import { Factory, faker } from 'ember-cli-mirage';
export default Factory.extend({
"folderId": faker.list.cycle("VzMuyEw_3WqiafcG", "VzMygEw_3WrtFzto"),
"userId": faker.list.cycle("VzMuyEw_3WqiafcE", "VzMuyEw_3WqiafcE"),
"canView": true,
"canEdit": true
});

View file

@ -0,0 +1,24 @@
// Copyright 2016 Documize Inc. <legal@documize.com>. All rights reserved.
//
// This software (Documize Community Edition) is licensed under
// GNU AGPL v3 http://www.gnu.org/licenses/agpl-3.0.en.html
//
// You can operate outside the AGPL restrictions by purchasing
// Documize Enterprise Edition and obtaining a commercial license
// by contacting <sales@documize.com>.
//
// https://documize.com
import { Factory } from 'ember-cli-mirage';
export default Factory.extend({
"id": "VzMuyEw_3WqiafcD",
"created": "2016-05-11T15:08:24Z",
"revised": "2016-05-23T11:23:20Z",
"title": "EmberSherpa",
"message": "This Documize instance contains all our team documentation",
"url": "",
"domain": "",
"email": "brizdigital@gmail.com",
"allowAnonymousAccess": false
});

View file

@ -12,8 +12,8 @@
import Mirage, { faker } from 'ember-cli-mirage';
export default Mirage.Factory.extend({
"folderId": faker.list.cycle('V0Vy5Uw_3QeDAMW9', 'VzMuyEw_3WqiafcG', 'VzMygEw_3WrtFzto', 'VzMygEw_3WrtFzto'),
"userId": faker.list.cycle('VzMuyEw_3WqiafcE', 'VzMuyEw_3WqiafcE', 'VzMuyEw_3WqiafcE', ''),
"folderId": faker.list.cycle('V0Vy5Uw_3QeDAMW9', 'VzMuyEw_3WqiafcG', 'VzMygEw_3WrtFzto', 'VzMygEw_3WrtFzto', "VzMygEw_3WrtFzto"),
"userId": faker.list.cycle('VzMuyEw_3WqiafcE', 'VzMuyEw_3WqiafcE', 'VzMuyEw_3WqiafcE', '', 0),
"canView": true,
"canEdit": faker.list.cycle(true, true, true, false)
"canEdit": faker.list.cycle(true, true, true, false, false)
});

View file

@ -0,0 +1,38 @@
// Copyright 2016 Documize Inc. <legal@documize.com>. All rights reserved.
//
// This software (Documize Community Edition) is licensed under
// GNU AGPL v3 http://www.gnu.org/licenses/agpl-3.0.en.html
//
// You can operate outside the AGPL restrictions by purchasing
// Documize Enterprise Edition and obtaining a commercial license
// by contacting <sales@documize.com>.
//
// https://documize.com
import { Factory, faker } from 'ember-cli-mirage';
export default Factory.extend({
"id": faker.list.cycle("VzMyp0w_3WrtFztq", "VzMuyEw_3WqiafcE"),
"created": faker.list.cycle("2016-05-11T13:24:55Z", "2016-05-11T15:08:24Z"),
"revised": faker.list.cycle("2016-05-11T13:33:47Z", "2016-05-11T15:08:24Z"),
"firstname": faker.list.cycle("Len", "Lennex"),
"lastname": faker.list.cycle("Random", "Zinyando"),
"email": faker.list.cycle("zinyando@gmail.com", "brizdigital@gmail.com"),
"initials": faker.list.cycle("LR", "LZ"),
"active": true,
"editor": true,
"admin": faker.list.cycle(false, true),
"accounts": [{
"id": faker.list.cycle("VzMyp0w_3WrtFztr", "VzMuyEw_3WqiafcF"),
"created": faker.list.cycle("2016-05-11T13:24:55Z", "2016-05-11T15:08:24Z"),
"revised": faker.list.cycle("2016-05-11T13:24:55Z", "2016-05-11T15:08:24Z"),
"admin": faker.list.cycle(false, true),
"editor": faker.list.cycle(true, true),
"userId": faker.list.cycle("VzMyp0w_3WrtFztq", "VzMuyEw_3WqiafcE"),
"orgId": faker.list.cycle("VzMuyEw_3WqiafcD", "VzMuyEw_3WqiafcD"),
"company": "EmberSherpa",
"title": "EmberSherpa",
"message": "This Documize instance contains all our team documentation",
"domain": ""
}]
});

View file

@ -32,7 +32,8 @@
"waitToAppear",
"stubUserNotification",
"is",
"authenticateUser"
"authenticateUser",
"localStorage"
],
"node": false,
"browser": false,

View file

@ -16,7 +16,6 @@ moduleForAcceptance('Acceptance | Anon access disabled');
test('visiting / when not authenticated and with { allowAnonymousAccess: false } takes user to login', function (assert) {
server.create('meta', { allowAnonymousAccess: false });
server.createList('folder', 2);
visit('/');
andThen(function () {

View file

@ -16,7 +16,6 @@ moduleForAcceptance('Acceptance | Anon access enabled');
test('visiting / when not authenticated and with { allowAnonymousAccess: true } takes user to folder view', function (assert) {
server.create('meta', { allowAnonymousAccess: true });
server.createList('folder', 2);
visit('/');
andThen(function () {
@ -28,7 +27,6 @@ test('visiting / when not authenticated and with { allowAnonymousAccess: true }
test('visiting / when authenticated and with { allowAnonymousAccess: true } takes user to dashboard', function (assert) {
server.create('meta', { allowAnonymousAccess: true });
server.createList('folder', 2);
visit('/');
andThen(function () {

View file

@ -16,7 +16,6 @@ moduleForAcceptance('Acceptance | Authentication');
test('visiting /auth/login and logging in', function (assert) {
server.create('meta', { allowAnonymousAccess: false });
server.createList('folder', 2);
visit('/auth/login');
fillIn('#authEmail', 'brizdigital@gmail.com');
@ -30,10 +29,8 @@ test('visiting /auth/login and logging in', function (assert) {
test('logging out a user', function (assert) {
server.create('meta', { allowAnonymousAccess: false });
server.createList('folder', 2);
userLogin();
visit('/auth/logout');
click('.dropdown-menu a:contains(Logout)');
andThen(function () {
assert.equal(currentURL(), '/auth/login', 'Logging out successful');
@ -42,7 +39,6 @@ test('logging out a user', function (assert) {
test('successful sso login authenticates redirects to dashboard', function (assert) {
server.create('meta', { allowAnonymousAccess: false });
server.createList('folder', 2);
visit('/auth/sso/OmJyaXpkaWdpdGFsQGdtYWlsLmNvbTp6aW55YW5kbzEyMw==');
@ -53,7 +49,6 @@ test('successful sso login authenticates redirects to dashboard', function (asse
test('sso login with bad token should redirect to login', function (assert) {
server.create('meta', { allowAnonymousAccess: false });
server.createList('folder', 2);
visit('/auth/sso/randomToken1234567890');

View file

@ -9,39 +9,38 @@
//
// https://documize.com
import { test, skip } from 'qunit';
import { test } from 'qunit';
import moduleForAcceptance from 'documize/tests/helpers/module-for-acceptance';
moduleForAcceptance('Acceptance | Documents space');
skip('Adding a new folder space', function (assert) {
test('Adding a new folder space', function (assert) {
server.create('meta', { allowAnonymousAccess: false });
server.createList('folder', 2);
server.createList('permission', 4);
authenticateUser();
visit('/s/VzMuyEw_3WqiafcG/my-project');
andThen(function () {
let personalSpaces = find('.section div:contains(PERSONAL)').length;
let personalSpaces = find('.folders-list div:contains(PERSONAL) .list a').length;
assert.equal(currentURL(), '/s/VzMuyEw_3WqiafcG/my-project');
assert.equal(personalSpaces, 1, '1 personal space is listed');
});
click('#add-folder-button');
fillIn('#new-folder-name', 'body', 'Test Folder');
fillIn('#new-folder-name', 'Test Folder');
click('.actions div:contains(Add)', 'body');
click('.actions div:contains(Add)');
andThen(function () {
let folderCount = find('.folders-list div:contains(PERSONAL) .list a').length;
assert.equal(folderCount, 2, 'New folder has been added');
assert.equal(currentURL(), '/s/V0Vy5Uw_3QeDAMW9/test-folder');
});
});
skip('Adding a document to a space', function (assert) {
test('Adding a document to a space', function (assert) {
server.create('meta', { allowAnonymousAccess: false });
server.createList('folder', 2);
server.createList('permission', 4);
authenticateUser();
visit('/s/VzMuyEw_3WqiafcG/my-project');
@ -52,20 +51,22 @@ skip('Adding a document to a space', function (assert) {
assert.equal(numberOfDocuments, 2, '2 documents listed');
});
click('#start-document-button');
click('.actions div:contains(Add)', 'body');
click('.actions div:contains(Start) .flat-green');
andThen(function () {
assert.equal(currentURL(), '/s/VzMuyEw_3WqiafcG/my-project/d/V4y7jkw_3QvCDSeS/new-document', 'New document displayed');
});
click('a div:contains(My Project) .space-name');
andThen(function () {
let numberOfDocuments = find('.documents-list li').length;
assert.equal(numberOfDocuments, 3, '3 documents listed');
assert.equal(currentURL(), '/s/VzMuyEw_3WqiafcG/my-project');
});
});
test('visiting space settings page', function (assert) {
server.create('meta', { allowAnonymousAccess: false });
server.createList('folder', 2);
server.createList('permission', 4);
authenticateUser();
visit('/s/VzMuyEw_3WqiafcG/my-project');
@ -80,8 +81,6 @@ test('visiting space settings page', function (assert) {
test('changing space name', function (assert) {
server.create('meta', { allowAnonymousAccess: false });
server.createList('folder', 2);
server.createList('permission', 4);
authenticateUser();
visit('/s/VzMuyEw_3WqiafcG/my-project');
@ -100,8 +99,6 @@ test('changing space name', function (assert) {
test('sharing a space', function (assert) {
server.create('meta', { allowAnonymousAccess: false });
server.createList('folder', 2);
server.createList('permission', 4);
authenticateUser();
visit('/s/VzMuyEw_3WqiafcG/my-project');
@ -117,11 +114,8 @@ test('sharing a space', function (assert) {
});
});
// Test will pass after moving to factories
test('changing space permissions', function (assert) {
server.create('meta', { allowAnonymousAccess: false });
server.createList('folder', 2);
server.createList('permission', 4);
authenticateUser();
visit('/s/VzMygEw_3WrtFzto/test');
@ -150,8 +144,6 @@ test('changing space permissions', function (assert) {
test('deleting a space', function (assert) {
server.create('meta', { allowAnonymousAccess: false });
server.createList('folder', 2);
server.createList('permission', 4);
authenticateUser();
visit('/s/VzMuyEw_3WqiafcG/my-project');
@ -165,10 +157,8 @@ test('deleting a space', function (assert) {
});
});
skip('deleting a document', function (assert) {
test('deleting a document', function (assert) {
server.create('meta', { allowAnonymousAccess: false });
server.createList('folder', 2);
server.createList('permission', 4);
authenticateUser();
visit('/s/VzMuyEw_3WqiafcG/my-project');
@ -186,10 +176,7 @@ skip('deleting a document', function (assert) {
assert.equal(deleteButton.length, 1, 'Delete button displayed after selecting document');
});
click('#delete-documents-button');
waitToAppear('.drop-content');
click('.actions div:contains(Delete)', 'body');
click('.actions div:contains(Delete) .flat-red');
andThen(function () {
let numberOfDocuments = find('.documents-list li');
@ -197,6 +184,28 @@ skip('deleting a document', function (assert) {
});
});
test('clicking a document title displays the document', function (assert) {
server.create('meta', { allowAnonymousAccess: false });
authenticateUser();
visit('/s/VzMygEw_3WrtFzto/test');
click('a .title:contains(README)');
andThen(function () {
findWithAssert('#add-section-button');
findWithAssert('#delete-document-button');
findWithAssert('#print-document-button');
findWithAssert('#save-template-button');
findWithAssert('#attachment-button');
findWithAssert('#set-meta-button');
findWithAssert('.name.space-name');
findWithAssert('.document-sidebar');
let title = find('.zone-header .title').text().trim();
assert.equal(title, 'README', 'document displayed correctly');
assert.equal(currentURL(), '/s/VzMygEw_3WrtFzto/test/d/VzMvJEw_3WqiafcI/readme');
});
});
function checkForCommonAsserts() {
findWithAssert('.sidebar-menu');
findWithAssert('.options li:contains(General)');

View file

@ -15,7 +15,6 @@ import moduleForAcceptance from 'documize/tests/helpers/module-for-acceptance';
moduleForAcceptance('Acceptance | user profile');
test('visiting /profile', function (assert) {
server.createList('folder', 2);
authenticateUser();
visit('/profile');
@ -28,7 +27,6 @@ test('visiting /profile', function (assert) {
});
test('changing user details and email ', function (assert) {
server.createList('folder', 2);
authenticateUser();
visit('/profile');

View file

@ -91,9 +91,6 @@ test('add a new user', function (assert) {
fillIn('#newUserEmail', 'test.user@domain.com');
click('.button-blue');
// waitToAppear('.user-notification:contains(Added)');
// waitToDisappear('.user-notification:contains(Added)');
andThen(function () {
let numberOfUsers = find('.user-list tr').length;
assert.equal(numberOfUsers, 4, '3 Users listed');

View file

@ -2,12 +2,19 @@ import { module } from 'qunit';
import startApp from '../helpers/start-app';
import destroyApp from '../helpers/destroy-app';
export default function(name, options = {}) {
export default function (name, options = {}) {
module(name, {
beforeEach() {
this.application = startApp();
localStorage.setItem('folder', 'VzMuyEw_3WqiafcG');
stubAudit(this);
stubUserNotification(this);
server.createList('folder', 2);
server.createList('user', 2);
server.createList('document', 2);
server.createList('permission', 4);
server.createList('folder-permission', 2);
server.createList('organization', 1);
if (options.beforeEach) {
options.beforeEach.apply(this, arguments);

View file

@ -10,16 +10,15 @@
<meta property="dbname" content="{{.DBname}}" />
<meta property="dbhash" content="{{.DBhash}}" />
<meta name="author" content="Documize" />
<style>
#ember-testing-container, #ember-testing-container * {
#ember-testing {
zoom: 100% !important;
}
#ember-testing-container {
/* Set position static to short-circuit Hubspot Tether's positioning */
/* https://github.com/HubSpot/tether/pull/98/ */
position: static !important;
}
.tether-container * {
z-index: 9999;
}
</style>
{{content-for "head"}}