Commit 632a48fda9a6aaf6ff25d346f858372a71589c1f

Authored by Leandro Santos
1 parent 4b151aa3

adding unit tests for profile iamge component and permission service

src/app/profile/image/profile-image.component.spec.ts
... ... @@ -26,6 +26,7 @@ describe("Components", () => {
26 26 beforeEach((done) => {
27 27 let scope = helpers.mocks.scopeWithEvents;
28 28 let profileService = jasmine.createSpyObj("profileService", ["upload"]);
  29 + let permissionService = jasmine.createSpyObj("permissionService", ["isAllowed"]);
29 30 let properties = { profile: { custom_footer: "footer" } };
30 31 let cls = createClass({
31 32 template: htmlTemplate,
... ... @@ -33,6 +34,7 @@ describe("Components", () => {
33 34 properties: properties,
34 35 providers: [
35 36 helpers.createProviderToValue("ProfileService", profileService),
  37 + helpers.createProviderToValue("PermissionService", permissionService),
36 38 helpers.createProviderToValue("$uibModal", helpers.mocks.$modal),
37 39 helpers.createProviderToValue("$scope", scope)
38 40 ]
... ... @@ -64,5 +66,22 @@ describe("Components", () => {
64 66 done();
65 67 });
66 68  
  69 + it("is editable be true in blocks that are editable", (done) => {
  70 + expect(helper.component.editable).toBe(true);
  71 + done();
  72 + });
  73 +
  74 + it("is not editable in editable blocks but without permission", (done) => {
  75 + helper.component['permissionService'].isAllowed = jasmine.createSpy("isAllowed").and.returnValue(false);
  76 + expect(helper.component.isEditable()).toBe(false);
  77 + done();
  78 + });
  79 +
  80 + it("is editable in editable blocks with edit permission", (done) => {
  81 + helper.component['permissionService'].isAllowed = jasmine.createSpy("isAllowed").and.returnValue(true);
  82 + expect(helper.component.isEditable()).toBe(true);
  83 + done();
  84 + });
  85 +
67 86 });
68 87 });
... ...
src/app/profile/image/profile-image.component.ts
... ... @@ -16,7 +16,7 @@ import { ProfileImageEditorComponent } from "./profile-image-editor.component";
16 16 })
17 17 @Inject(ProfileService, PermissionService, "$uibModal", "$scope")
18 18 export class ProfileImageComponent {
19   -
  19 +
20 20 /**
21 21 * @ngdoc property
22 22 * @name profile
... ... @@ -36,10 +36,7 @@ export class ProfileImageComponent {
36 36  
37 37 @Input() editable: boolean;
38 38  
39   - @Input() editClass: string;
40   -
41 39 picFile: any;
42   - croppedDataUrl: any;
43 40 modalInstance: any;
44 41  
45 42 constructor(private profileService: ProfileService, private permissionService: PermissionService, private $uibModal: ng.ui.bootstrap.IModalService, private $scope: ng.IScope) {
... ... @@ -64,16 +61,6 @@ export class ProfileImageComponent {
64 61 }
65 62 }
66 63  
67   - private _showCamera: boolean = false;
68   -
69   - showChange(show: boolean) {
70   - this._showCamera = show;
71   - }
72   -
73   - showCamera() {
74   - return this._showCamera;
75   - }
76   -
77 64 isEditable() {
78 65 return this.editable && this.permissionService.isAllowed(this.profile, 'allow_edit');
79 66 }
... ...
src/app/shared/services/permission.service.spec.ts 0 → 100644
... ... @@ -0,0 +1,137 @@
  1 +import { PermissionService } from './permission.service';
  2 +
  3 +
  4 +describe("PermissionService", () => {
  5 +
  6 + // Profile TESTS
  7 + it("check if a person has no permission if there is no permissions in object", (done) => {
  8 + let permissionService: PermissionService = new PermissionService();
  9 + let target = <noosfero.Profile>{ id: 1, identifier: "some" };
  10 + expect(permissionService.isAllowed(target, null)).toBe(false);
  11 + done();
  12 + });
  13 +
  14 + it("check if a person has no permission if the permissions is null", (done) => {
  15 + let permissionService: PermissionService = new PermissionService();
  16 + let target = <noosfero.Profile>{ id: 1, identifier: "some", permissions: null };
  17 + expect(permissionService.isAllowed(target, null)).toBe(false);
  18 + done();
  19 + });
  20 +
  21 + it("check if a person has no permission if the permissions is empty", (done) => {
  22 + let permissionService: PermissionService = new PermissionService();
  23 + let target = <noosfero.Profile>{ id: 1, identifier: "some", permissions: [] };
  24 + expect(permissionService.isAllowed(target, null)).toBe(false);
  25 + done();
  26 + });
  27 +
  28 + it("check person has no permission if permissions has no element named like permission desired", (done) => {
  29 + let permissionService: PermissionService = new PermissionService();
  30 + let target = <noosfero.Profile>{ id: 1, identifier: "some", permissions: ['another_permission'] };
  31 + expect(permissionService.isAllowed(target, 'some_permission')).toBe(false);
  32 + done();
  33 + });
  34 +
  35 + it("check person has permission if permissions has the element named like permission desired", (done) => {
  36 + let permissionService: PermissionService = new PermissionService();
  37 + let target = <noosfero.Profile>{ id: 1, identifier: "some", permissions: ['some_permission'] };
  38 + expect(permissionService.isAllowed(target, 'some_permission')).toBe(true);
  39 + done();
  40 + });
  41 +
  42 + it("check person has permission if permissions has some element named like permission desired", (done) => {
  43 + let permissionService: PermissionService = new PermissionService();
  44 + let target = <noosfero.Profile>{ id: 1, identifier: "some", permissions: ['another', 'some_permission'] };
  45 + expect(permissionService.isAllowed(target, 'some_permission')).toBe(true);
  46 + done();
  47 + });
  48 +
  49 +
  50 + // Comment TESTS
  51 + it("check if a person has no permission if there is no permissions in object", (done) => {
  52 + let permissionService: PermissionService = new PermissionService();
  53 + let target = <noosfero.Comment>{ id: 1 };
  54 + expect(permissionService.isAllowed(target, null)).toBe(false);
  55 + done();
  56 + });
  57 +
  58 + it("check if a person has no permission if the permissions is null", (done) => {
  59 + let permissionService: PermissionService = new PermissionService();
  60 + let target = <noosfero.Comment>{ id: 1, permissions: null };
  61 + expect(permissionService.isAllowed(target, null)).toBe(false);
  62 + done();
  63 + });
  64 +
  65 + it("check if a person has no permission if the permissions is empty", (done) => {
  66 + let permissionService: PermissionService = new PermissionService();
  67 + let target = <noosfero.Comment>{ id: 1, permissions: [] };
  68 + expect(permissionService.isAllowed(target, null)).toBe(false);
  69 + done();
  70 + });
  71 +
  72 + it("check person has no permission if permissions has no element named like permission desired", (done) => {
  73 + let permissionService: PermissionService = new PermissionService();
  74 + let target = <noosfero.Comment>{ id: 1, permissions: ['another_permission'] };
  75 + expect(permissionService.isAllowed(target, 'some_permission')).toBe(false);
  76 + done();
  77 + });
  78 +
  79 + it("check person has permission if permissions has the element named like permission desired", (done) => {
  80 + let permissionService: PermissionService = new PermissionService();
  81 + let target = <noosfero.Comment>{ id: 1, permissions: ['some_permission'] };
  82 + expect(permissionService.isAllowed(target, 'some_permission')).toBe(true);
  83 + done();
  84 + });
  85 +
  86 + it("check person has permission if permissions has some element named like permission desired", (done) => {
  87 + let permissionService: PermissionService = new PermissionService();
  88 + let target = <noosfero.Comment>{ id: 1, permissions: ['another', 'some_permission'] };
  89 + expect(permissionService.isAllowed(target, 'some_permission')).toBe(true);
  90 + done();
  91 + });
  92 +
  93 + // Article TESTS
  94 + it("check if a person has no permission if there is no permissions in object", (done) => {
  95 + let permissionService: PermissionService = new PermissionService();
  96 + let target = <noosfero.Article>{ id: 1 };
  97 + expect(permissionService.isAllowed(target, null)).toBe(false);
  98 + done();
  99 + });
  100 +
  101 + it("check if a person has no permission if the permissions is null", (done) => {
  102 + let permissionService: PermissionService = new PermissionService();
  103 + let target = <noosfero.Article>{ id: 1, permissions: null };
  104 + expect(permissionService.isAllowed(target, null)).toBe(false);
  105 + done();
  106 + });
  107 +
  108 + it("check if a person has no permission if the permissions is empty", (done) => {
  109 + let permissionService: PermissionService = new PermissionService();
  110 + let target = <noosfero.Article>{ id: 1, permissions: [] };
  111 + expect(permissionService.isAllowed(target, null)).toBe(false);
  112 + done();
  113 + });
  114 +
  115 + it("check person has no permission if permissions has no element named like permission desired", (done) => {
  116 + let permissionService: PermissionService = new PermissionService();
  117 + let target = <noosfero.Article>{ id: 1, permissions: ['another_permission'] };
  118 + expect(permissionService.isAllowed(target, 'some_permission')).toBe(false);
  119 + done();
  120 + });
  121 +
  122 + it("check person has permission if permissions has the element named like permission desired", (done) => {
  123 + let permissionService: PermissionService = new PermissionService();
  124 + let target = <noosfero.Article>{ id: 1, permissions: ['some_permission'] };
  125 + expect(permissionService.isAllowed(target, 'some_permission')).toBe(true);
  126 + done();
  127 + });
  128 +
  129 + it("check person has permission if permissions has some element named like permission desired", (done) => {
  130 + let permissionService: PermissionService = new PermissionService();
  131 + let target = <noosfero.Article>{ id: 1, permissions: ['another', 'some_permission'] };
  132 + expect(permissionService.isAllowed(target, 'some_permission')).toBe(true);
  133 + done();
  134 + });
  135 +
  136 +
  137 +});
... ...