Commit f7c01b774aae6ec2fa1e942815f7996e6bcc1e3a

Authored by Michel Felipe
2 parents afe347ca c6d22d1a

merge

src/app/components/navbar/navbar.spec.ts
1 import { 1 import {
2 -createComponentFromClass,  
3 -quickCreateComponent,  
4 -provideEmptyObjects 2 + createComponentFromClass,
  3 + quickCreateComponent,
  4 + provideEmptyObjects
5 } from "./../../../spec/helpers"; 5 } from "./../../../spec/helpers";
6 import { 6 import {
7 -Navbar 7 + Navbar
8 } from "./navbar"; 8 } from "./navbar";
9 import { 9 import {
10 -AUTH_EVENTS 10 + AUTH_EVENTS
11 } from "./../auth"; 11 } from "./../auth";
12 import { 12 import {
13 -User 13 + User
14 } from "./../../models/interfaces"; 14 } from "./../../models/interfaces";
15 import { 15 import {
16 -Injectable,  
17 -Provider,  
18 -provide 16 + Injectable,
  17 + Provider,
  18 + provide
19 } from "ng-forward"; 19 } from "ng-forward";
20 20
21 21
@@ -59,7 +59,6 @@ describe("Components", () => { @@ -59,7 +59,6 @@ describe("Components", () => {
59 }) 59 })
60 ]; 60 ];
61 61
62 -  
63 quickCreateComponent({ 62 quickCreateComponent({
64 providers: providers, 63 providers: providers,
65 template: "<acme-navbar></acme-navbar>", 64 template: "<acme-navbar></acme-navbar>",
@@ -72,5 +71,118 @@ describe(&quot;Components&quot;, () =&gt; { @@ -72,5 +71,118 @@ describe(&quot;Components&quot;, () =&gt; {
72 }); 71 });
73 }); 72 });
74 73
  74 + it('It should open on click', (done: Function) => {
  75 +
  76 + let scope = {
  77 + eventCalledHook: () => { },
  78 + $on: (eventName: string, func: Function) => {
  79 + console.log("ON Called!");
  80 + this.eventCalledHook = func;
  81 + }
  82 + }
  83 +
  84 + let modalInstance = {
  85 + close: () => {
  86 + console.log("CLOSE Called!");
  87 + }
  88 + }
  89 +
  90 + let $modal = {
  91 + open: (args: {}) => {
  92 + return modalInstance;
  93 + }
  94 + }
  95 +
  96 + let stateService = jasmine.createSpyObj("$state", ["go"]);
  97 + let providers = [
  98 + new Provider('moment', { useValue: {} }),
  99 + new Provider('$modal', { useValue: $modal }),
  100 + new Provider('AuthService', { useValue: {} }),
  101 + new Provider('Session', {
  102 + useValue: {
  103 + currentUser: () => { return user }
  104 + }
  105 + }),
  106 + new Provider('$scope', { useValue: scope }),
  107 + new Provider('$state', { useValue: stateService }),
  108 + new Provider('AUTH_EVENTS', { useValue: { AUTH_EVENTS } })
  109 + ];
  110 + quickCreateComponent({
  111 + providers: providers,
  112 + template: "<acme-navbar></acme-navbar>",
  113 + directives: [Navbar]
  114 + })
  115 + .then(fixture => {
  116 + console.log("entrou no .then")
  117 + let navbarComp: Navbar = <Navbar>fixture.debugElement.componentViewChildren[0].componentInstance;
  118 + spyOn($modal, "open");
  119 + //navbarComp.activate();
  120 + navbarComp.openLogin();
  121 + expect($modal.open).toHaveBeenCalled();
  122 + expect($modal.open).toHaveBeenCalledWith({
  123 + templateUrl: 'app/components/auth/login.html',
  124 + controller: 'AuthController',
  125 + controllerAs: 'vm',
  126 + bindToController: true
  127 + })
  128 + done();
  129 + })
  130 + });
  131 +
  132 +
  133 + // it('closes the modal the login', (done: Function) => {
  134 + // let scope = {
  135 + // eventCalledHook: () => { },
  136 + // $on: (eventName: string, func: Function) => {
  137 + // console.log("ON Called!");
  138 + // this.eventCalledHook = func;
  139 + // }
  140 + // }
  141 + //
  142 + // let modalInstance = {
  143 + // close: () => {
  144 + // console.log("CLOSE Called!");
  145 + // }
  146 + // }
  147 + //
  148 + // let $modal = {
  149 + // $open: (args: {}) => {
  150 + // return modalInstance;
  151 + // }
  152 + // }
  153 + //
  154 + // let stateService = jasmine.createSpyObj("$state", ["go"]);
  155 + // let providers = [
  156 + // new Provider('moment', { useValue: {} }),
  157 + // new Provider('$modal', { useValue: $modal }),
  158 + // new Provider('AuthService', { useValue: {} }),
  159 + // new Provider('Session', {
  160 + // useValue: {
  161 + // currentUser: () => { return user }
  162 + // }
  163 + // }),
  164 + // new Provider('$scope', { useValue: scope }),
  165 + // new Provider('$state', { useValue: stateService }),
  166 + // new Provider('AUTH_EVENTS', { useValue: { AUTH_EVENTS } })
  167 + // ];
  168 + // spyOn(modalInstance, "close");
  169 + //
  170 + // quickCreateComponent({
  171 + // providers: providers,
  172 + // template: "<acme-navbar></acme-navbar>",
  173 + // directives: [Navbar]
  174 + // })
  175 + // .then(fixture => {
  176 + // let navbarComp: Navbar = <Navbar>fixture.debugElement.componentViewChildren[0].componentInstance;
  177 + // navbarComp.activate();
  178 + // navbarComp.openLogin
  179 + //
  180 + // expect($modal.open).toHaveBeenCalledWith({})
  181 + // scope.eventCalledHook();
  182 + // expect(modalInstance.close).toHaveBeenCalled();
  183 + // done();
  184 + // })
  185 + // //done();
  186 + // });
75 }); 187 });
76 -});  
77 \ No newline at end of file 188 \ No newline at end of file
  189 +});
src/app/components/navbar/navbar.ts
@@ -65,4 +65,4 @@ export class Navbar { @@ -65,4 +65,4 @@ export class Navbar {
65 } 65 }
66 } 66 }
67 67
68 -}  
69 \ No newline at end of file 68 \ No newline at end of file
  69 +}
src/app/components/noosfero/noosfero-template.filter.js
@@ -1,13 +0,0 @@ @@ -1,13 +0,0 @@
1 -(function() {  
2 - 'use strict';  
3 - angular  
4 - .module("noosferoApp")  
5 - .filter("noosferoTemplate", function() {  
6 - return function(text, options) {  
7 - for(var option in options) {  
8 - text = text.replace('{'+option+'}', options[option]);  
9 - }  
10 - return text;  
11 - }  
12 - })  
13 -})();  
src/app/components/noosfero/noosfero-template.filter.spec.ts 0 → 100644
@@ -0,0 +1,19 @@ @@ -0,0 +1,19 @@
  1 +import {quickCreateComponent} from "../../../spec/helpers";
  2 +import {NoosferoTemplate} from './noosfero-template.filter';
  3 +
  4 +describe("Filters", () => {
  5 + describe("Noosfero Template Filter", () => {
  6 +
  7 + beforeEach(angular.mock.module("templates"));
  8 +
  9 + it("replace the options in text with the values passed on options", done => {
  10 + let text = 'profile: {profile}, other: {other}';
  11 + let htmlTemplate = `{{ '${text}' | noosferoTemplate: {profile: 'profile1', other: 'other value'} }}`;
  12 + quickCreateComponent({ providers: [NoosferoTemplate], template: htmlTemplate }).then(fixture => {
  13 + expect(fixture.debugElement.text()).toEqual("profile: profile1, other: other value");
  14 + done();
  15 + });
  16 + });
  17 +
  18 + });
  19 +});
src/app/components/noosfero/noosfero-template.filter.ts
1 -(function() {  
2 - 'use strict';  
3 - angular  
4 - .module("noosferoApp")  
5 - .filter("noosferoTemplate", function() {  
6 - return function(text, options) {  
7 - for(var option in options) {  
8 - text = text.replace('{'+option+'}', options[option]); 1 +import {Pipe} from "ng-forward";
  2 +
  3 +@Pipe("noosferoTemplate")
  4 +export class NoosferoTemplate {
  5 +
  6 + transform(text: string, options: any) {
  7 + for (var option in options) {
  8 + text = text.replace('{' + option + '}', options[option]);
9 } 9 }
10 return text; 10 return text;
11 - }  
12 - })  
13 -})(); 11 + }
  12 +
  13 +}
src/app/index.ts
@@ -42,7 +42,6 @@ NoosferoApp.run(noosferoAngularRunBlock); @@ -42,7 +42,6 @@ NoosferoApp.run(noosferoAngularRunBlock);
42 NoosferoApp.addController("AuthController", AuthController); 42 NoosferoApp.addController("AuthController", AuthController);
43 43
44 44
45 -require("./components/noosfero/noosfero-template.filter.js");  
46 require("./components/noosfero/noosfero.service.js"); 45 require("./components/noosfero/noosfero.service.js");
47 require("./components/noosfero/profile-image/profile-image.component.js"); 46 require("./components/noosfero/profile-image/profile-image.component.js");
48 47
src/app/main/main.component.ts
@@ -10,7 +10,7 @@ import {LinkListBlock} from &quot;../components/noosfero-blocks/link-list/link-list.c @@ -10,7 +10,7 @@ import {LinkListBlock} from &quot;../components/noosfero-blocks/link-list/link-list.c
10 import {RecentDocumentsBlock} from "../components/noosfero-blocks/recent-documents/recent-documents.component"; 10 import {RecentDocumentsBlock} from "../components/noosfero-blocks/recent-documents/recent-documents.component";
11 import {ProfileImageBlock} from "../components/noosfero-blocks/profile-image/profile-image.component"; 11 import {ProfileImageBlock} from "../components/noosfero-blocks/profile-image/profile-image.component";
12 import {MembersBlock} from "../components/noosfero-blocks/members-block/members-block.component"; 12 import {MembersBlock} from "../components/noosfero-blocks/members-block/members-block.component";
13 - 13 +import {NoosferoTemplate} from "../components/noosfero/noosfero-template.filter";
14 14
15 import {AuthService} from "./../components/auth/auth_service"; 15 import {AuthService} from "./../components/auth/auth_service";
16 import {Session} from "./../components/auth/session"; 16 import {Session} from "./../components/auth/session";
@@ -35,7 +35,8 @@ export class MainContent { @@ -35,7 +35,8 @@ export class MainContent {
35 template: '<div ng-view></div>', 35 template: '<div ng-view></div>',
36 directives: [ 36 directives: [
37 ArticleBlog, ArticleView, Boxes, Block, LinkListBlock, 37 ArticleBlog, ArticleView, Boxes, Block, LinkListBlock,
38 - MainBlock, RecentDocumentsBlock, Navbar, ProfileImageBlock, MembersBlock 38 + MainBlock, RecentDocumentsBlock, Navbar, ProfileImageBlock,
  39 + MembersBlock, NoosferoTemplate
39 ], 40 ],
40 providers: [AuthService, Session] 41 providers: [AuthService, Session]
41 }) 42 })
src/lib/ng-noosfero-api/http/article.service.ts
@@ -7,7 +7,7 @@ export class ArticleService { @@ -7,7 +7,7 @@ export class ArticleService {
7 constructor(private Restangular: any) { } 7 constructor(private Restangular: any) { }
8 8
9 getByProfile(profileId: number, filters: any) { 9 getByProfile(profileId: number, filters: any) {
10 - return this.Restangular.service('profiles').one(profileId).one('articles').get(filters); 10 + return this.Restangular.one('profiles', profileId).customGET('articles', filters);
11 } 11 }
12 12
13 getChildren(id: number, filters: any) { 13 getChildren(id: number, filters: any) {