311 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			311 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <html lang="en"><head></head><body><form id="mainForm" method="post" action="http://plnkr.co/edit/?p=preview&open=app/banner.component.spec.ts" target="_self"><input type="hidden" name="files[browser-test-shim.js]" value="// BROWSER TESTING SHIM
 | |
| // Keep it in-sync with what karma-test-shim does
 | |
| /*global jasmine, __karma__, window*/
 | |
| (function () {
 | |
| 
 | |
| Error.stackTraceLimit = 0; // "No stacktrace"" is usually best for app testing.
 | |
| 
 | |
| // Uncomment to get full stacktrace output. Sometimes helpful, usually not.
 | |
| // Error.stackTraceLimit = Infinity; //
 | |
| 
 | |
| jasmine.DEFAULT_TIMEOUT_INTERVAL = 3000;
 | |
| 
 | |
| var baseURL = document.baseURI;
 | |
| baseURL = baseURL + baseURL[baseURL.length-1] ? '' : '/';
 | |
| 
 | |
| System.config({
 | |
|   baseURL: baseURL,
 | |
|   // Extend usual application package list with test folder
 | |
|   packages: { 'testing': { main: 'index.js', defaultExtension: 'js' } },
 | |
| 
 | |
|   // Assume npm: is set in `paths` in systemjs.config
 | |
|   // Map the angular testing umd bundles
 | |
|   map: {
 | |
|     '@angular/core/testing': 'npm:@angular/core/bundles/core-testing.umd.js',
 | |
|     '@angular/common/testing': 'npm:@angular/common/bundles/common-testing.umd.js',
 | |
|     '@angular/compiler/testing': 'npm:@angular/compiler/bundles/compiler-testing.umd.js',
 | |
|     '@angular/platform-browser/testing': 'npm:@angular/platform-browser/bundles/platform-browser-testing.umd.js',
 | |
|     '@angular/platform-browser-dynamic/testing': 'npm:@angular/platform-browser-dynamic/bundles/platform-browser-dynamic-testing.umd.js',
 | |
|     '@angular/http/testing': 'npm:@angular/http/bundles/http-testing.umd.js',
 | |
|     '@angular/router/testing': 'npm:@angular/router/bundles/router-testing.umd.js',
 | |
|     '@angular/forms/testing': 'npm:@angular/forms/bundles/forms-testing.umd.js',
 | |
|   },
 | |
| });
 | |
| 
 | |
| System.import('systemjs.config.js')
 | |
|   .then(importSystemJsExtras)
 | |
|   .then(initTestBed)
 | |
|   .then(initTesting);
 | |
| 
 | |
| /** Optional SystemJS configuration extras. Keep going w/o it */
 | |
| function importSystemJsExtras(){
 | |
|   return System.import('systemjs.config.extras.js')
 | |
|   .catch(function(reason) {
 | |
|     console.log(
 | |
|       'Note: System.import could not load "systemjs.config.extras.js" where you might have added more configuration. It is an optional file so we will continue without it.'
 | |
|     );
 | |
|     console.log(reason);
 | |
|   });
 | |
| }
 | |
| 
 | |
| function initTestBed(){
 | |
|   return Promise.all([
 | |
|     System.import('@angular/core/testing'),
 | |
|     System.import('@angular/platform-browser-dynamic/testing')
 | |
|   ])
 | |
| 
 | |
|   .then(function (providers) {
 | |
|     var coreTesting    = providers[0];
 | |
|     var browserTesting = providers[1];
 | |
| 
 | |
|     coreTesting.TestBed.initTestEnvironment(
 | |
|       browserTesting.BrowserDynamicTestingModule,
 | |
|       browserTesting.platformBrowserDynamicTesting());
 | |
|   })
 | |
| }
 | |
| 
 | |
| // Import all spec files defined in the html (__spec_files__)
 | |
| // and start Jasmine testrunner
 | |
| function initTesting () {
 | |
|   console.log('loading spec files: '+__spec_files__.join(', '));
 | |
|   return Promise.all(
 | |
|     __spec_files__.map(function(spec) {
 | |
|       return System.import(spec);
 | |
|     })
 | |
|   )
 | |
|   //  After all imports load,  re-execute `window.onload` which
 | |
|   //  triggers the Jasmine test-runner start or explain what went wrong
 | |
|   .then(success, console.error.bind(console));
 | |
| 
 | |
|   function success () {
 | |
|     console.log('Spec files loaded; starting Jasmine testrunner');
 | |
|     window.onload();
 | |
|   }
 | |
| }
 | |
| 
 | |
| })();
 | |
| 
 | |
| 
 | |
| /*
 | |
| Copyright 2016 Google Inc. All Rights Reserved.
 | |
| Use of this source code is governed by an MIT-style license that
 | |
| can be found in the LICENSE file at http://angular.io/license
 | |
| */"><input type="hidden" name="files[systemjs.config.extras.js]" value="/** App specific SystemJS configuration */
 | |
| System.config({
 | |
|   packages: {
 | |
|     // barrels
 | |
|     'app/model': {main:'index.js', defaultExtension:'js'},
 | |
|     'app/model/testing': {main:'index.js', defaultExtension:'js'}
 | |
|   }
 | |
| });
 | |
| 
 | |
| 
 | |
| /*
 | |
| Copyright 2016 Google Inc. All Rights Reserved.
 | |
| Use of this source code is governed by an MIT-style license that
 | |
| can be found in the LICENSE file at http://angular.io/license
 | |
| */"><input type="hidden" name="files[app/banner.component.css]" value="h1 { color: green; font-size: 350%}
 | |
| 
 | |
| 
 | |
| /*
 | |
| Copyright 2016 Google Inc. All Rights Reserved.
 | |
| Use of this source code is governed by an MIT-style license that
 | |
| can be found in the LICENSE file at http://angular.io/license
 | |
| */"><input type="hidden" name="files[app/banner.component.html]" value="<h1>{{title}}</h1>
 | |
| 
 | |
| 
 | |
| <!-- 
 | |
| Copyright 2016 Google Inc. All Rights Reserved.
 | |
| Use of this source code is governed by an MIT-style license that
 | |
| can be found in the LICENSE file at http://angular.io/license
 | |
| -->"><input type="hidden" name="files[app/banner.component.ts]" value="import { Component } from '@angular/core';
 | |
| 
 | |
| @Component({
 | |
|   moduleId: module.id,
 | |
|   selector: 'app-banner',
 | |
|   templateUrl: './banner.component.html',
 | |
|   styleUrls:  ['./banner.component.css']
 | |
| })
 | |
| export class BannerComponent {
 | |
|   title = 'Test Tour of Heroes';
 | |
| }
 | |
| 
 | |
| 
 | |
| 
 | |
| /*
 | |
| Copyright 2016 Google Inc. All Rights Reserved.
 | |
| Use of this source code is governed by an MIT-style license that
 | |
| can be found in the LICENSE file at http://angular.io/license
 | |
| */"><input type="hidden" name="files[app/banner.component.spec.ts]" value="import { async, ComponentFixture, TestBed } from '@angular/core/testing';
 | |
| import { By }              from '@angular/platform-browser';
 | |
| import { DebugElement }    from '@angular/core';
 | |
| 
 | |
| import { BannerComponent } from './banner.component';
 | |
| 
 | |
| describe('BannerComponent (templateUrl)', () => {
 | |
| 
 | |
|   let comp:    BannerComponent;
 | |
|   let fixture: ComponentFixture<BannerComponent>;
 | |
|   let de:      DebugElement;
 | |
|   let el:      HTMLElement;
 | |
| 
 | |
|   // async beforeEach
 | |
|   beforeEach(async(() => {
 | |
|     TestBed.configureTestingModule({
 | |
|       declarations: [ BannerComponent ], // declare the test component
 | |
|     })
 | |
|     .compileComponents();  // compile template and css
 | |
|   }));
 | |
| 
 | |
|   // synchronous beforeEach
 | |
|   beforeEach(() => {
 | |
|     fixture = TestBed.createComponent(BannerComponent);
 | |
| 
 | |
|     comp = fixture.componentInstance; // BannerComponent test instance
 | |
| 
 | |
|     // query for the title <h1> by CSS element selector
 | |
|     de = fixture.debugElement.query(By.css('h1'));
 | |
|     el = de.nativeElement;
 | |
|   });
 | |
| 
 | |
|   it('no title in the DOM until manually call `detectChanges`', () => {
 | |
|     expect(el.textContent).toEqual('');
 | |
|   });
 | |
| 
 | |
|   it('should display original title', () => {
 | |
|     fixture.detectChanges();
 | |
|     expect(el.textContent).toContain(comp.title);
 | |
|   });
 | |
| 
 | |
|   it('should display a different test title', () => {
 | |
|     comp.title = 'Test Title';
 | |
|     fixture.detectChanges();
 | |
|     expect(el.textContent).toContain('Test Title');
 | |
|   });
 | |
| 
 | |
| });
 | |
| 
 | |
| 
 | |
| /*
 | |
| Copyright 2016 Google Inc. All Rights Reserved.
 | |
| Use of this source code is governed by an MIT-style license that
 | |
| can be found in the LICENSE file at http://angular.io/license
 | |
| */"><input type="hidden" name="files[index.html]" value="<!-- Run application specs in a browser -->
 | |
| <!DOCTYPE html>
 | |
| <html>
 | |
| <head>
 | |
|   <script>document.write('<base href="' + document.location + '" />');</script>
 | |
|   <title>Banner Component Specs</title>
 | |
|   <meta charset="UTF-8">
 | |
|   <meta name="viewport" content="width=device-width, initial-scale=1">
 | |
|   <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jasmine/2.4.1/jasmine.css">
 | |
| </head>
 | |
| <body>
 | |
|   <!-- Polyfills -->
 | |
|   <script src="https://unpkg.com/core-js/client/shim.min.js"></script>
 | |
| 
 | |
|   <script src="https://unpkg.com/systemjs@0.19.39/dist/system.src.js"></script>
 | |
| 
 | |
|   <script src="https://cdnjs.cloudflare.com/ajax/libs/jasmine/2.4.1/jasmine.js"></script>
 | |
|   <script src="https://cdnjs.cloudflare.com/ajax/libs/jasmine/2.4.1/jasmine-html.js"></script>
 | |
|   <script src="https://cdnjs.cloudflare.com/ajax/libs/jasmine/2.4.1/boot.js"></script>
 | |
| 
 | |
|   <script src="https://unpkg.com/zone.js@0.7.4?main=browser"></script>
 | |
|   <script src="https://unpkg.com/zone.js/dist/long-stack-trace-zone.js?main=browser"></script>
 | |
|   <script src="https://unpkg.com/zone.js/dist/proxy.js?main=browser"></script>
 | |
|   <script src="https://unpkg.com/zone.js/dist/sync-test.js?main=browser"></script>
 | |
|   <script src="https://unpkg.com/zone.js/dist/jasmine-patch.js?main=browser"></script>
 | |
|   <script src="https://unpkg.com/zone.js/dist/async-test.js?main=browser"></script>
 | |
|   <script src="https://unpkg.com/zone.js/dist/fake-async-test.js?main=browser"></script>
 | |
| 
 | |
|   <script>
 | |
|     var __spec_files__ = [
 | |
|       'app/banner.component.spec'
 | |
|     ];
 | |
|   </script>
 | |
|   <script src="browser-test-shim.js"></script>
 | |
| </body>
 | |
| 
 | |
| </html>
 | |
| 
 | |
| 
 | |
| <!-- 
 | |
| Copyright 2016 Google Inc. All Rights Reserved.
 | |
| Use of this source code is governed by an MIT-style license that
 | |
| can be found in the LICENSE file at http://angular.io/license
 | |
| -->"><input type="hidden" name="tags[0]" value="angular"><input type="hidden" name="tags[1]" value="example"><input type="hidden" name="tags[2]" value="testing"><input type="hidden" name="private" value="true"><input type="hidden" name="description" value="Angular Example - Testing - banner.component.specs"><input type="hidden" name="files[systemjs.config.js]" value="/**
 | |
|  * WEB ANGULAR VERSION
 | |
|  * (based on systemjs.config.js in angular.io)
 | |
|  * System configuration for Angular samples
 | |
|  * Adjust as necessary for your application needs.
 | |
|  */
 | |
| (function (global) {
 | |
|   System.config({
 | |
|     // DEMO ONLY! REAL CODE SHOULD NOT TRANSPILE IN THE BROWSER
 | |
|     transpiler: 'ts',
 | |
|     typescriptOptions: {
 | |
|       // Copy of compiler options in standard tsconfig.json
 | |
|       "target": "es5",
 | |
|       "module": "commonjs",
 | |
|       "moduleResolution": "node",
 | |
|       "sourceMap": true,
 | |
|       "emitDecoratorMetadata": true,
 | |
|       "experimentalDecorators": true,
 | |
|       "lib": ["es2015", "dom"],
 | |
|       "noImplicitAny": true,
 | |
|       "suppressImplicitAnyIndexErrors": true
 | |
|     },
 | |
|     meta: {
 | |
|       'typescript': {
 | |
|         "exports": "ts"
 | |
|       }
 | |
|     },
 | |
|     paths: {
 | |
|       // paths serve as alias
 | |
|       'npm:': 'https://unpkg.com/'
 | |
|     },
 | |
|     // map tells the System loader where to look for things
 | |
|     map: {
 | |
|       // our app is within the app folder
 | |
|       app: 'app',
 | |
| 
 | |
|       // angular bundles
 | |
|       '@angular/core': 'npm:@angular/core/bundles/core.umd.js',
 | |
|       '@angular/common': 'npm:@angular/common/bundles/common.umd.js',
 | |
|       '@angular/compiler': 'npm:@angular/compiler/bundles/compiler.umd.js',
 | |
|       '@angular/platform-browser': 'npm:@angular/platform-browser/bundles/platform-browser.umd.js',
 | |
|       '@angular/platform-browser-dynamic': 'npm:@angular/platform-browser-dynamic/bundles/platform-browser-dynamic.umd.js',
 | |
|       '@angular/http': 'npm:@angular/http/bundles/http.umd.js',
 | |
|       '@angular/router': 'npm:@angular/router/bundles/router.umd.js',
 | |
|       '@angular/router/upgrade': 'npm:@angular/router/bundles/router-upgrade.umd.js',
 | |
|       '@angular/forms': 'npm:@angular/forms/bundles/forms.umd.js',
 | |
|       '@angular/upgrade': 'npm:@angular/upgrade/bundles/upgrade.umd.js',
 | |
|       '@angular/upgrade/static': 'npm:@angular/upgrade/bundles/upgrade-static.umd.js',
 | |
| 
 | |
|       // other libraries
 | |
|       'rxjs':                      'npm:rxjs@5.0.1',
 | |
|       'angular-in-memory-web-api': 'npm:angular-in-memory-web-api/bundles/in-memory-web-api.umd.js',
 | |
|       'ts':                        'npm:plugin-typescript@5.2.7/lib/plugin.js',
 | |
|       'typescript':                'npm:typescript@2.0.10/lib/typescript.js',
 | |
| 
 | |
|     },
 | |
|     // packages tells the System loader how to load when no filename and/or no extension
 | |
|     packages: {
 | |
|       app: {
 | |
|         main: './main.ts',
 | |
|         defaultExtension: 'ts'
 | |
|       },
 | |
|       rxjs: {
 | |
|         defaultExtension: 'js'
 | |
|       }
 | |
|     }
 | |
|   });
 | |
| 
 | |
| })(this);
 | |
| 
 | |
| /*
 | |
| Copyright 2016 Google Inc. All Rights Reserved.
 | |
| Use of this source code is governed by an MIT-style license that
 | |
| can be found in the LICENSE file at http://angular.io/license
 | |
| */
 | |
| "></form><script>document.getElementById("mainForm").submit();</script></body></html> |