block.component.spec.ts
5.61 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
import {Component} from 'ng-forward';
import {BlockComponent} from './block.component';
import * as helpers from "../../../spec/helpers";
import {ComponentTestHelper, createClass} from '../../../spec/component-test-helper';
const htmlTemplate: string = '<noosfero-block [block]="ctrl.block" [owner]="ctrl.profile"></noosfero-block>';
describe("Boxes Component", () => {
let helper: ComponentTestHelper<BlockComponent>;
beforeEach(() => {
angular.mock.module("templates");
});
let properties = {
block: { id: 1 },
owner: {
id: 1,
identifier: 'profile-name',
type: 'Person'
}
};
beforeEach((done) => {
let cls = createClass({
template: htmlTemplate,
directives: [BlockComponent],
properties: properties,
providers: [
helpers.createProviderToValue('SessionService', helpers.mocks.sessionWithCurrentUser({})),
helpers.createProviderToValue('AuthService', helpers.mocks.authService),
helpers.createProviderToValue('$state', state),
helpers.createProviderToValue('TranslatorService', translatorService),
helpers.createProviderToValue('$uibModal', helpers.mocks.$modal),
helpers.createProviderToValue('BlockService', blockService),
helpers.createProviderToValue('NotificationService', helpers.mocks.notificationService)
]
});
helper = new ComponentTestHelper<BlockComponent>(cls, done);
});
let translatorService = jasmine.createSpyObj("translatorService", ["currentLanguage"]);
let blockService = jasmine.createSpyObj("blockService", ["update"]);
let state = jasmine.createSpyObj("state", ["current"]);
state.current = { name: "" };
it("set isHomepage as false by default", () => {
expect(helper.component.isHomepage).toBeFalsy();
});
it("set isHomepage as true when in profile home page", () => {
state.current = { name: "main.profile.home" };
helper.component.ngOnInit();
expect(helper.component.isHomepage).toBeTruthy();
});
it("set isHomepage as true when in profile info page", () => {
state.current = { name: "main.profile.info" };
helper.component.ngOnInit();
expect(helper.component.isHomepage).toBeTruthy();
});
it("set isHomepage as true when in profile page", () => {
state.current = { name: "main.profile.page" };
state.params = { page: "/page" };
(<noosfero.Profile>helper.component.owner).homepage = '/page';
helper.component.ngOnInit();
expect(helper.component.isHomepage).toBeTruthy();
});
it("set isHomepage as true when in environment home page", () => {
state.current = { name: "main.environment.home" };
helper.component.owner = <noosfero.Environment>{};
helper.component.ngOnInit();
expect(helper.component.isHomepage).toBeTruthy();
});
it("return true in canDisplay when no display option is setted", () => {
helper.component.block = <any>{};
expect(helper.component.canDisplay()).toEqual(true);
});
it("return false in canDisplay for an invisible block", () => {
helper.component.block = <any>{ settings: { display: "never" } };
expect(helper.component.canDisplay()).toEqual(false);
});
it("return false in canDisplay with except_home_page in homepage", () => {
helper.component.block = <any>{ settings: { display_user: "except_home_page" } };
expect(helper.component.canDisplay()).toEqual(false);
});
it("return false in canDisplay with home_page_only outside homepage", () => {
helper.component.block = <any>{ settings: { display_user: "home_page_only" } };
expect(helper.component.canDisplay()).toEqual(false);
});
it("return true in canDisplay when display_user is all for logged user", () => {
helper.component.block = <any>{ settings: { display_user: "all" } };
expect(helper.component.canDisplay()).toEqual(true);
});
it("return true in canDisplay when display_user is all for not logged user", () => {
helper.component.currentUser = null;
helper.component.block = <any>{ settings: { display_user: "all" } };
expect(helper.component.canDisplay()).toEqual(true);
});
it("return false in canDisplay when display_user is logged for not logged user", () => {
helper.component.currentUser = null;
helper.component.block = <any>{ settings: { display_user: "logged" } };
expect(helper.component.canDisplay()).toEqual(false);
});
it("return false in canDisplay when display_user is not_logged for logged user", () => {
helper.component.block = <any>{ settings: { display_user: "not_logged" } };
expect(helper.component.canDisplay()).toEqual(false);
});
it("return false in canDisplay when current language is not equal to language in block settings", () => {
helper.component['translatorService'].currentLanguage = jasmine.createSpy("currentLanguage").and.returnValue("pt");
helper.component.block = <any>{ settings: { language: "en" } };
expect(helper.component.canDisplay()).toEqual(false);
});
it("return false in canDisplay when hide is true", () => {
helper.component.block = <any>{ id: 1, hide: true };
expect(helper.component.canDisplay()).toEqual(false);
});
it("return true in canDisplay when hide is not true", () => {
helper.component.block = <any>{ id: 1, hide: false };
expect(helper.component.canDisplay()).toEqual(true);
});
});