From 0cad2e3e908b54c9de8d77ae77a2f481e3c3a88b Mon Sep 17 00:00:00 2001 From: Ben Nadel Date: Sun, 10 Apr 2016 09:14:24 -0400 Subject: [PATCH 1/3] Create cookbook recipe for setting the document title. --- .../cb-set-document-title/ts/.gitignore | 2 + .../ts/app/app.component.ts | 43 ++++++++++++ .../cb-set-document-title/ts/app/main.ts | 36 ++++++++++ .../ts/example-config.json | 0 .../cb-set-document-title/ts/index.html | 68 +++++++++++++++++++ .../cb-set-document-title/ts/plnkr.json | 9 +++ .../cb-set-document-title/ts/sample.css | 4 ++ public/docs/ts/latest/cookbook/_data.json | 5 ++ .../latest/cookbook/set-document-title.jade | 44 ++++++++++++ 9 files changed, 211 insertions(+) create mode 100644 public/docs/_examples/cb-set-document-title/ts/.gitignore create mode 100644 public/docs/_examples/cb-set-document-title/ts/app/app.component.ts create mode 100644 public/docs/_examples/cb-set-document-title/ts/app/main.ts create mode 100644 public/docs/_examples/cb-set-document-title/ts/example-config.json create mode 100644 public/docs/_examples/cb-set-document-title/ts/index.html create mode 100644 public/docs/_examples/cb-set-document-title/ts/plnkr.json create mode 100644 public/docs/_examples/cb-set-document-title/ts/sample.css create mode 100644 public/docs/ts/latest/cookbook/set-document-title.jade diff --git a/public/docs/_examples/cb-set-document-title/ts/.gitignore b/public/docs/_examples/cb-set-document-title/ts/.gitignore new file mode 100644 index 0000000000..0cd6873595 --- /dev/null +++ b/public/docs/_examples/cb-set-document-title/ts/.gitignore @@ -0,0 +1,2 @@ +**/*.js +npm-debug.log \ No newline at end of file diff --git a/public/docs/_examples/cb-set-document-title/ts/app/app.component.ts b/public/docs/_examples/cb-set-document-title/ts/app/app.component.ts new file mode 100644 index 0000000000..297d8dd238 --- /dev/null +++ b/public/docs/_examples/cb-set-document-title/ts/app/app.component.ts @@ -0,0 +1,43 @@ +// #docregion +// Import the native Angular services. +import { Component } from "angular2/core"; +import { Title } from "angular2/platform/browser"; + +@Component({ + selector: 'my-app', + template: + ` +

+ Select a title to set on the current HTML document: +

+ + + ` +}) +export class AppComponent { + + // I initialize the component. + public constructor( title :Title ) { + + this._titleService = title; + + } + + + // --- + // PUBLIC METHODS. + // --- + + + // I apply the given title to the HTML document. + public setTitle( newTitle :string ) : void { + + this._titleService.setTitle( newTitle ); + + } + +} \ No newline at end of file diff --git a/public/docs/_examples/cb-set-document-title/ts/app/main.ts b/public/docs/_examples/cb-set-document-title/ts/app/main.ts new file mode 100644 index 0000000000..402a312bbb --- /dev/null +++ b/public/docs/_examples/cb-set-document-title/ts/app/main.ts @@ -0,0 +1,36 @@ +// #docregion +// #docregion bootstrap-simple +// Import the native Angular services. +import { bootstrap } from "angular2/platform/browser"; +import { Title } from "angular2/platform/browser"; + +// Import the custom application services. +import { AppComponent } from "./app.component"; + +var promise = bootstrap( + AppComponent, + [ + // While Angular supplies a Title service for setting the HTML document + // title, it doesn't include this service as part of the default Browser + // platform providers. As such, if we want to inject it into the components + // within our application, we have to explicitly provide the Angular + // service when bootstrapping our application. + Title + ] +); +// #enddocregion bootstrap-simple + +// Log bootstrap completion (whether in success or failure). +promise.then( + function handleBootstrapSuccess() { + + console.info( "Angular finished bootstrapping your application!" ); + + }, + function handleBootstrapFailure( error :any ) { + + console.warn( "Angular was not able to bootstrap your application." ); + console.error( error ); + + } +); diff --git a/public/docs/_examples/cb-set-document-title/ts/example-config.json b/public/docs/_examples/cb-set-document-title/ts/example-config.json new file mode 100644 index 0000000000..e69de29bb2 diff --git a/public/docs/_examples/cb-set-document-title/ts/index.html b/public/docs/_examples/cb-set-document-title/ts/index.html new file mode 100644 index 0000000000..0ecffa553a --- /dev/null +++ b/public/docs/_examples/cb-set-document-title/ts/index.html @@ -0,0 +1,68 @@ + + + + + + + + + Setting The Document Title Using The Title Service + + + + + + + + + + + + + + + + + + + +

+ Setting The Document Title Using The Title Service +

+ + + Loading app... + + + + diff --git a/public/docs/_examples/cb-set-document-title/ts/plnkr.json b/public/docs/_examples/cb-set-document-title/ts/plnkr.json new file mode 100644 index 0000000000..0131610c20 --- /dev/null +++ b/public/docs/_examples/cb-set-document-title/ts/plnkr.json @@ -0,0 +1,9 @@ +{ + "description": "Set The Document Title In Angular 2", + "files": [ + "!**/*.d.ts", + "!**/*.js", + "!**/*.[1].*" + ], + "tags": [ "cookbook" ] +} diff --git a/public/docs/_examples/cb-set-document-title/ts/sample.css b/public/docs/_examples/cb-set-document-title/ts/sample.css new file mode 100644 index 0000000000..13acd31061 --- /dev/null +++ b/public/docs/_examples/cb-set-document-title/ts/sample.css @@ -0,0 +1,4 @@ +a { + color: #607D8B ; + text-decoration: underline ; +} diff --git a/public/docs/ts/latest/cookbook/_data.json b/public/docs/ts/latest/cookbook/_data.json index e4363318ef..308e067fc2 100644 --- a/public/docs/ts/latest/cookbook/_data.json +++ b/public/docs/ts/latest/cookbook/_data.json @@ -29,5 +29,10 @@ "ts-to-js": { "title": "TypeScript to JavaScript", "intro": "Convert Angular 2 TypeScript examples into ES5 JavaScript" + }, + + "set-document-title": { + "title": "Set the Document Title", + "intro": "Setting the document or window title using the Title service." } } diff --git a/public/docs/ts/latest/cookbook/set-document-title.jade b/public/docs/ts/latest/cookbook/set-document-title.jade new file mode 100644 index 0000000000..2e25fdd9e1 --- /dev/null +++ b/public/docs/ts/latest/cookbook/set-document-title.jade @@ -0,0 +1,44 @@ +include ../_util-fns + +:marked + **TODO Items (so I don't forget them later)**: + + * Insert link to Title service document. + * Get Plunkr working for live code example. + + ---- + + In an AngularJS 1.x application, you were able to bootstrap your Angular code on top of the entire HTML document. + This meant that you could create a root component that provided a scope value that defined the HTML `title` tag, + `{{ pageTitle }}`. In Angular 2, however, the root component of your application is an element + contained within the `body` tag. This means that your Angular 2 application doesn't have native access to the + `title` tag in the same way that it used to. + + Fortunately, Angular 2 bridges this gap by providing a `Title` service as part of the **Browser platform**. The + `Title` service is a simple class that provides an API for getting and setting the current HTML document title: + + * `getTitle() : string` — Gets the title of the current HTML document. + * `setTitle( newTitle : string )` — Sets the title of the current HTML document. + + While this class is provided as part of the Browser platform package, it is *not part of the default Browser + platform providers*. This means that even if you bootstrap your application using the Browser platform `boostrap()` + function, you'll still need to explicitly include `Title` as one of the custom providers: + ++makeExample( "cb-set-document-title/ts/app/main.ts", "bootstrap-simple", "app/main.ts" ) + +:marked + Once you've explicitly provided the `Title` service you can then inject the `Title` service into any of your + custom application components and services. To see this in action, let's take a look at how the provided `Title` + service can be injected into one of our Angular 2 components and then used to set the document title: + + **See the [live example](/resources/live-examples/cb-set-document-title/ts/plnkr.html)**. + ++makeExample( "cb-set-document-title/ts/app/app.component.ts", "", "app/app.component.ts" ) + +.callout.is-helpful + header Title Is Platform Specific + :marked + The `Title` service is provided as part of the Browser platform. This means that if you bootstrap your application using another platform, you'll have to provide a different `Title` service that understand the concept of a "document title" for that specific platform. + +:marked + [Back to top](#top) \ No newline at end of file From 6532e71fceebce28441e85405535f7396b0ac7b8 Mon Sep 17 00:00:00 2001 From: Ward Bell Date: Sun, 10 Apr 2016 12:19:28 -0700 Subject: [PATCH 2/3] docs(cb-set-document-title): new cookbook chapter, Ward's tweaks --- .../ts/app/app.component.ts | 58 ++++----- .../cb-set-document-title/ts/app/main.ts | 50 +++----- .../cb-set-document-title/ts/index.html | 111 +++++++++--------- public/docs/dart/latest/cookbook/_data.json | 13 +- .../latest/cookbook/set-document-title.jade | 1 + public/docs/js/latest/cookbook/_data.json | 7 +- .../latest/cookbook/set-document-title.jade | 1 + public/docs/ts/latest/cookbook/_data.json | 14 +-- .../latest/cookbook/set-document-title.jade | 102 +++++++++++----- .../set-document-title/set-title-anim.gif | Bin 0 -> 42842 bytes 10 files changed, 190 insertions(+), 167 deletions(-) create mode 100644 public/docs/dart/latest/cookbook/set-document-title.jade create mode 100644 public/docs/js/latest/cookbook/set-document-title.jade create mode 100644 public/resources/images/cookbooks/set-document-title/set-title-anim.gif diff --git a/public/docs/_examples/cb-set-document-title/ts/app/app.component.ts b/public/docs/_examples/cb-set-document-title/ts/app/app.component.ts index 297d8dd238..692e3e75ed 100644 --- a/public/docs/_examples/cb-set-document-title/ts/app/app.component.ts +++ b/public/docs/_examples/cb-set-document-title/ts/app/app.component.ts @@ -1,43 +1,29 @@ +// #docplaster // #docregion // Import the native Angular services. -import { Component } from "angular2/core"; -import { Title } from "angular2/platform/browser"; +import { Component } from 'angular2/core'; +import { Title } from 'angular2/platform/browser'; @Component({ - selector: 'my-app', - template: - ` -

- Select a title to set on the current HTML document: -

- - - ` +selector: 'my-app', +template: + `

+ Select a title to set on the current HTML document: +

+ + + ` }) +// #docregion class export class AppComponent { + public constructor(private _titleService: Title ) { } - // I initialize the component. - public constructor( title :Title ) { - - this._titleService = title; - - } - - - // --- - // PUBLIC METHODS. - // --- - - - // I apply the given title to the HTML document. - public setTitle( newTitle :string ) : void { - - this._titleService.setTitle( newTitle ); - - } - -} \ No newline at end of file + public setTitle( newTitle: string) { + this._titleService.setTitle( newTitle ); + } +} +// #enddocregion class diff --git a/public/docs/_examples/cb-set-document-title/ts/app/main.ts b/public/docs/_examples/cb-set-document-title/ts/app/main.ts index 402a312bbb..ddbb9bd57e 100644 --- a/public/docs/_examples/cb-set-document-title/ts/app/main.ts +++ b/public/docs/_examples/cb-set-document-title/ts/app/main.ts @@ -1,36 +1,20 @@ // #docregion -// #docregion bootstrap-simple -// Import the native Angular services. -import { bootstrap } from "angular2/platform/browser"; -import { Title } from "angular2/platform/browser"; +import { bootstrap } from 'angular2/platform/browser'; +import { AppComponent } from './app.component'; -// Import the custom application services. -import { AppComponent } from "./app.component"; +// While Angular supplies a Title service for setting the HTML document title +// it doesn't include this service as part of the default Browser platform providers. +// As such, if we want to inject it into the components within our application, +// we have to explicitly provide the Angular service in our top component. +// #docregion bootstrap-title +import { Title } from 'angular2/platform/browser'; -var promise = bootstrap( - AppComponent, - [ - // While Angular supplies a Title service for setting the HTML document - // title, it doesn't include this service as part of the default Browser - // platform providers. As such, if we want to inject it into the components - // within our application, we have to explicitly provide the Angular - // service when bootstrapping our application. - Title - ] -); -// #enddocregion bootstrap-simple - -// Log bootstrap completion (whether in success or failure). -promise.then( - function handleBootstrapSuccess() { - - console.info( "Angular finished bootstrapping your application!" ); - - }, - function handleBootstrapFailure( error :any ) { - - console.warn( "Angular was not able to bootstrap your application." ); - console.error( error ); - - } -); +bootstrap(AppComponent, [ Title ]) +// #enddocregion bootstrap-title + .then( + () => window.console.info( 'Angular finished bootstrapping your application!' ), + (error) => { + console.warn( 'Angular was not able to bootstrap your application.' ); + console.error( error ); + } + ); diff --git a/public/docs/_examples/cb-set-document-title/ts/index.html b/public/docs/_examples/cb-set-document-title/ts/index.html index 0ecffa553a..0b1a25d2c3 100644 --- a/public/docs/_examples/cb-set-document-title/ts/index.html +++ b/public/docs/_examples/cb-set-document-title/ts/index.html @@ -1,68 +1,63 @@ - - - - - - Setting The Document Title Using The Title Service - - - - - - - - - - - - - - - - + + + + + + Setting The Document Title Using The Title Service + + + + + + + + + + + + + + + + + -

- Setting The Document Title Using The Title Service -

+

+ Setting The Document Title Using The Title Service +

- - Loading app... - + + Loading app... + diff --git a/public/docs/dart/latest/cookbook/_data.json b/public/docs/dart/latest/cookbook/_data.json index ce8315d497..2c28e02169 100644 --- a/public/docs/dart/latest/cookbook/_data.json +++ b/public/docs/dart/latest/cookbook/_data.json @@ -4,14 +4,14 @@ "navTitle": "Overview", "intro": "A collection of recipes for common Angular application scenarios" }, - + "a1-a2-quick-reference": { "title": "Angular 1 to 2 Quick Reference", "navTitle": "Angular 1 to 2 Quick Ref", "intro": "Learn how Angular 1 concepts and techniques map to Angular 2", "hide": true }, - + "component-communication": { "title": "Component Interaction", "intro": "Share information between different directives and components" @@ -22,16 +22,21 @@ "intro": "Techniques for Dependency Injection", "hide": true }, - + "dynamic-forms": { "title": "Dynamic Form", "intro": "Render dynamic forms with NgFormModel", "hide": true }, + "set-document-title": { + "title": "Set the Document Title", + "intro": "Setting the document or window title using the Title service." + }, + "ts-to-js": { "title": "TypeScript to JavaScript", "intro": "Convert Angular 2 TypeScript examples into ES5 JavaScript", "hide": true } -} \ No newline at end of file +} diff --git a/public/docs/dart/latest/cookbook/set-document-title.jade b/public/docs/dart/latest/cookbook/set-document-title.jade new file mode 100644 index 0000000000..f8df2a84a6 --- /dev/null +++ b/public/docs/dart/latest/cookbook/set-document-title.jade @@ -0,0 +1 @@ +!= partial("../../../_includes/_ts-temp") \ No newline at end of file diff --git a/public/docs/js/latest/cookbook/_data.json b/public/docs/js/latest/cookbook/_data.json index a2040caccf..e7a2501630 100644 --- a/public/docs/js/latest/cookbook/_data.json +++ b/public/docs/js/latest/cookbook/_data.json @@ -20,12 +20,17 @@ "title": "Dependency Injection", "intro": "Techniques for Dependency Injection" }, - + "dynamic-forms": { "title": "Dynamic Form", "intro": "Render dynamic forms with NgFormModel" }, + "set-document-title": { + "title": "Set the Document Title", + "intro": "Setting the document or window title using the Title service." + }, + "ts-to-js": { "title": "TypeScript to JavaScript", "intro": "Convert Angular 2 TypeScript examples into ES5 JavaScript" diff --git a/public/docs/js/latest/cookbook/set-document-title.jade b/public/docs/js/latest/cookbook/set-document-title.jade new file mode 100644 index 0000000000..f8df2a84a6 --- /dev/null +++ b/public/docs/js/latest/cookbook/set-document-title.jade @@ -0,0 +1 @@ +!= partial("../../../_includes/_ts-temp") \ No newline at end of file diff --git a/public/docs/ts/latest/cookbook/_data.json b/public/docs/ts/latest/cookbook/_data.json index 308e067fc2..211e12bfd4 100644 --- a/public/docs/ts/latest/cookbook/_data.json +++ b/public/docs/ts/latest/cookbook/_data.json @@ -4,13 +4,13 @@ "navTitle": "Overview", "description": "A collection of recipes for common Angular application scenarios" }, - + "a1-a2-quick-reference": { "title": "Angular 1 to 2 Quick Reference", "navTitle": "Angular 1 to 2 Quick Ref", "intro": "Learn how Angular 1 concepts and techniques map to Angular 2" }, - + "component-communication": { "title": "Component Interaction", "intro": "Share information between different directives and components" @@ -26,13 +26,13 @@ "intro": "Render dynamic forms with NgFormModel" }, - "ts-to-js": { - "title": "TypeScript to JavaScript", - "intro": "Convert Angular 2 TypeScript examples into ES5 JavaScript" - }, - "set-document-title": { "title": "Set the Document Title", "intro": "Setting the document or window title using the Title service." + }, + + "ts-to-js": { + "title": "TypeScript to JavaScript", + "intro": "Convert Angular 2 TypeScript examples into ES5 JavaScript" } } diff --git a/public/docs/ts/latest/cookbook/set-document-title.jade b/public/docs/ts/latest/cookbook/set-document-title.jade index 2e25fdd9e1..13ff40a408 100644 --- a/public/docs/ts/latest/cookbook/set-document-title.jade +++ b/public/docs/ts/latest/cookbook/set-document-title.jade @@ -1,44 +1,90 @@ include ../_util-fns +a(id='top') :marked - **TODO Items (so I don't forget them later)**: - - * Insert link to Title service document. - * Get Plunkr working for live code example. - - ---- + Our app should be able to make the browser title bar say whatever we want it to say. + This cookbook explains how to do it. +:marked + **See the [live example](/resources/live-examples/cb-set-document-title/ts/plnkr.html)**. +.l-sub-section + img(src='/resources/images/devguide/plunker-separate-window-button.png' alt="pop out the window" align="right" style="margin-right:-20px") + :marked + To see the browser Title bar changes, + pop out the preview window by clicking the blue 'X' button in the upper right corner. +:marked + ## The problem with *<title>* + + The obvious approach is to bind a property of the component to the HTML `` like this: +code-example(format='') + <title>{{This_Does_Not_Work}}</title> +:marked + Sorry but that won't work. + The root component of our application is an element contained within the `<body>` tag. + The HTML `<title>` is in the document `<head>`, outside the body, making it inaccessible to Angular data binding. - In an AngularJS 1.x application, you were able to bootstrap your Angular code on top of the entire HTML document. - This meant that you could create a root component that provided a scope value that defined the HTML `title` tag, - `<title>{{ pageTitle }}`. In Angular 2, however, the root component of your application is an element - contained within the `body` tag. This means that your Angular 2 application doesn't have native access to the - `title` tag in the same way that it used to. + We could grab the browser `document` object and set the title manually. + That's dirty and undermines our chances of running the app outside of a browser someday. +.l-sub-section + :marked + That's a major Angular architectural goal. It may not seem important to us right now. + But why squander that future just to set the title bar? - Fortunately, Angular 2 bridges this gap by providing a `Title` service as part of the **Browser platform**. The - `Title` service is a simple class that provides an API for getting and setting the current HTML document title: +:marked + ## Use the *Title* service + Fortunately, Angular 2 bridges the gap by providing a `Title` service as part of the *Browser platform*. + The [Title](../api//platform/browser/Title-class.html) service is a simple class that provides an API + for getting and setting the current HTML document title: * `getTitle() : string` — Gets the title of the current HTML document. * `setTitle( newTitle : string )` — Sets the title of the current HTML document. - While this class is provided as part of the Browser platform package, it is *not part of the default Browser - platform providers*. This means that even if you bootstrap your application using the Browser platform `boostrap()` - function, you'll still need to explicitly include `Title` as one of the custom providers: - -+makeExample( "cb-set-document-title/ts/app/main.ts", "bootstrap-simple", "app/main.ts" ) + While this class is part of the Browser platform package, it is *not part of the default Browser + platform providers* that Angular loads automatically. + This means as we bootstrap our application using the Browser platform `boostrap()` + function, we'll also have to include `Title` service explicitly as one of the bootstrap providers: ++makeExample( "cb-set-document-title/ts/app/main.ts", "bootstrap-title", "app/main.ts (provide Title service)" )(format='.') :marked - Once you've explicitly provided the `Title` service you can then inject the `Title` service into any of your - custom application components and services. To see this in action, let's take a look at how the provided `Title` - service can be injected into one of our Angular 2 components and then used to set the document title: + Once we've explicitly provided the `Title` service we can then inject the `Title` service into any of our + custom application components and services. + + Let's inject the `Title` service into the root `AppComponent` and expose a bindable `setTitle` method that calls it: - **See the [live example](/resources/live-examples/cb-set-document-title/ts/plnkr.html)**. ++makeExample( "cb-set-document-title/ts/app/app.component.ts", "class", "app/app.component.ts (class)" )(format='.') +:marked + We bind that method to three anchor tags and, voilĂ ! +figure.image-display + img(src="/resources/images/cookbooks/set-document-title/set-title-anim.gif" alt="Set title") -+makeExample( "cb-set-document-title/ts/app/app.component.ts", "", "app/app.component.ts" ) +:marked + Here's the complete solution -.callout.is-helpful - header Title Is Platform Specific - :marked - The `Title` service is provided as part of the Browser platform. This means that if you bootstrap your application using another platform, you'll have to provide a different `Title` service that understand the concept of a "document title" for that specific platform. ++makeTabs( + `cb-set-document-title/ts/app/main.ts, + cb-set-document-title/ts/app/app.component.ts`, + '', + 'app/main.ts, app/app.component.ts' ) +// + Todo: tie this back to the router so we can see how to use this Title service to (re)set the title + that appears in the window navigation history and shows up in the back/forward buttons + during routing. + + See https://github.com/angular/angular/issues/7630#issuecomment-198328802 + +.l-main-section +:marked + ## Why we provide the *Title* service in *bootstrap* + + We generally recommended providing application-wide services in the root application component, `AppComponent`. + + Here we recommend registering the title service during bootstrapping, + a location we reserve for configuring the runtime Angular enviroment. + + That's exactly what we're doing. + The `Title` service is part of the Angular *browser platform*. + If we bootstrap our application into a different platform, + we'll have to provide a different `Title` service that understands the concept of a "document title" for that specific platform. + Ideally the application itself neither knows nor cares about the runtime environment. :marked - [Back to top](#top) \ No newline at end of file + [Back to top](#top) diff --git a/public/resources/images/cookbooks/set-document-title/set-title-anim.gif b/public/resources/images/cookbooks/set-document-title/set-title-anim.gif new file mode 100644 index 0000000000000000000000000000000000000000..41e8a0e2dac3645b54b3dfcb204b0be144410e90 GIT binary patch literal 42842 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%0D>p~& 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�U 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 literal 0 HcmV?d00001 From 359ffd0612f640f63ff7a43facbaabe441bf0c43 Mon Sep 17 00:00:00 2001 From: Ben Nadel Date: Mon, 18 Apr 2016 20:17:11 -0400 Subject: [PATCH 3/3] Adding e2e test. --- .../cb-set-document-title/e2e-spec.js | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 public/docs/_examples/cb-set-document-title/e2e-spec.js diff --git a/public/docs/_examples/cb-set-document-title/e2e-spec.js b/public/docs/_examples/cb-set-document-title/e2e-spec.js new file mode 100644 index 0000000000..52516f4d4b --- /dev/null +++ b/public/docs/_examples/cb-set-document-title/e2e-spec.js @@ -0,0 +1,27 @@ +// gulp run-e2e-tests --filter=cb-set-document-title +describe('Set Document Title', function () { + + beforeAll(function () { + browser.get(''); + }); + + it('should set the document title', function () { + + var titles = [ + 'Good morning!', + 'Good afternoon!', + 'Good evening!' + ]; + + element.all( by.css( 'ul li a' ) ).each( + function iterator( element, i ) { + + element.click(); + expect( browser.getTitle() ).toEqual( titles[ i ] ); + + } + ); + + }); + +});