testing.dev.js 110 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721
  1. "format register";
  2. System.register("angular2/src/mock/location_mock", ["angular2/src/core/di", "angular2/src/facade/async"], true, function(require, exports, module) {
  3. var global = System.global,
  4. __define = global.define;
  5. global.define = undefined;
  6. var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
  7. var c = arguments.length,
  8. r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
  9. d;
  10. if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
  11. r = Reflect.decorate(decorators, target, key, desc);
  12. else
  13. for (var i = decorators.length - 1; i >= 0; i--)
  14. if (d = decorators[i])
  15. r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  16. return c > 3 && r && Object.defineProperty(target, key, r), r;
  17. };
  18. var __metadata = (this && this.__metadata) || function(k, v) {
  19. if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
  20. return Reflect.metadata(k, v);
  21. };
  22. var di_1 = require("angular2/src/core/di");
  23. var async_1 = require("angular2/src/facade/async");
  24. var SpyLocation = (function() {
  25. function SpyLocation() {
  26. this.urlChanges = [];
  27. this._path = '';
  28. this._query = '';
  29. this._subject = new async_1.EventEmitter();
  30. this._baseHref = '';
  31. this.platformStrategy = null;
  32. }
  33. SpyLocation.prototype.setInitialPath = function(url) {
  34. this._path = url;
  35. };
  36. SpyLocation.prototype.setBaseHref = function(url) {
  37. this._baseHref = url;
  38. };
  39. SpyLocation.prototype.path = function() {
  40. return this._path;
  41. };
  42. SpyLocation.prototype.simulateUrlPop = function(pathname) {
  43. async_1.ObservableWrapper.callEmit(this._subject, {
  44. 'url': pathname,
  45. 'pop': true
  46. });
  47. };
  48. SpyLocation.prototype.simulateHashChange = function(pathname) {
  49. this.setInitialPath(pathname);
  50. this.urlChanges.push('hash: ' + pathname);
  51. async_1.ObservableWrapper.callEmit(this._subject, {
  52. 'url': pathname,
  53. 'pop': true,
  54. 'type': 'hashchange'
  55. });
  56. };
  57. SpyLocation.prototype.prepareExternalUrl = function(url) {
  58. if (url.length > 0 && !url.startsWith('/')) {
  59. url = '/' + url;
  60. }
  61. return this._baseHref + url;
  62. };
  63. SpyLocation.prototype.go = function(path, query) {
  64. if (query === void 0) {
  65. query = '';
  66. }
  67. path = this.prepareExternalUrl(path);
  68. if (this._path == path && this._query == query) {
  69. return ;
  70. }
  71. this._path = path;
  72. this._query = query;
  73. var url = path + (query.length > 0 ? ('?' + query) : '');
  74. this.urlChanges.push(url);
  75. };
  76. SpyLocation.prototype.replaceState = function(path, query) {
  77. if (query === void 0) {
  78. query = '';
  79. }
  80. path = this.prepareExternalUrl(path);
  81. this._path = path;
  82. this._query = query;
  83. var url = path + (query.length > 0 ? ('?' + query) : '');
  84. this.urlChanges.push('replace: ' + url);
  85. };
  86. SpyLocation.prototype.forward = function() {};
  87. SpyLocation.prototype.back = function() {};
  88. SpyLocation.prototype.subscribe = function(onNext, onThrow, onReturn) {
  89. if (onThrow === void 0) {
  90. onThrow = null;
  91. }
  92. if (onReturn === void 0) {
  93. onReturn = null;
  94. }
  95. return async_1.ObservableWrapper.subscribe(this._subject, onNext, onThrow, onReturn);
  96. };
  97. SpyLocation.prototype.normalize = function(url) {
  98. return null;
  99. };
  100. SpyLocation = __decorate([di_1.Injectable(), __metadata('design:paramtypes', [])], SpyLocation);
  101. return SpyLocation;
  102. })();
  103. exports.SpyLocation = SpyLocation;
  104. global.define = __define;
  105. return module.exports;
  106. });
  107. System.register("angular2/src/router/location_strategy", ["angular2/src/facade/lang", "angular2/core"], true, function(require, exports, module) {
  108. var global = System.global,
  109. __define = global.define;
  110. global.define = undefined;
  111. var lang_1 = require("angular2/src/facade/lang");
  112. var core_1 = require("angular2/core");
  113. var LocationStrategy = (function() {
  114. function LocationStrategy() {}
  115. return LocationStrategy;
  116. })();
  117. exports.LocationStrategy = LocationStrategy;
  118. exports.APP_BASE_HREF = lang_1.CONST_EXPR(new core_1.OpaqueToken('appBaseHref'));
  119. function normalizeQueryParams(params) {
  120. return (params.length > 0 && params.substring(0, 1) != '?') ? ('?' + params) : params;
  121. }
  122. exports.normalizeQueryParams = normalizeQueryParams;
  123. function joinWithSlash(start, end) {
  124. if (start.length == 0) {
  125. return end;
  126. }
  127. if (end.length == 0) {
  128. return start;
  129. }
  130. var slashes = 0;
  131. if (start.endsWith('/')) {
  132. slashes++;
  133. }
  134. if (end.startsWith('/')) {
  135. slashes++;
  136. }
  137. if (slashes == 2) {
  138. return start + end.substring(1);
  139. }
  140. if (slashes == 1) {
  141. return start + end;
  142. }
  143. return start + '/' + end;
  144. }
  145. exports.joinWithSlash = joinWithSlash;
  146. global.define = __define;
  147. return module.exports;
  148. });
  149. System.register("angular2/src/mock/mock_location_strategy", ["angular2/src/core/di", "angular2/src/facade/async", "angular2/src/router/location_strategy"], true, function(require, exports, module) {
  150. var global = System.global,
  151. __define = global.define;
  152. global.define = undefined;
  153. var __extends = (this && this.__extends) || function(d, b) {
  154. for (var p in b)
  155. if (b.hasOwnProperty(p))
  156. d[p] = b[p];
  157. function __() {
  158. this.constructor = d;
  159. }
  160. d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
  161. };
  162. var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
  163. var c = arguments.length,
  164. r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
  165. d;
  166. if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
  167. r = Reflect.decorate(decorators, target, key, desc);
  168. else
  169. for (var i = decorators.length - 1; i >= 0; i--)
  170. if (d = decorators[i])
  171. r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  172. return c > 3 && r && Object.defineProperty(target, key, r), r;
  173. };
  174. var __metadata = (this && this.__metadata) || function(k, v) {
  175. if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
  176. return Reflect.metadata(k, v);
  177. };
  178. var di_1 = require("angular2/src/core/di");
  179. var async_1 = require("angular2/src/facade/async");
  180. var location_strategy_1 = require("angular2/src/router/location_strategy");
  181. var MockLocationStrategy = (function(_super) {
  182. __extends(MockLocationStrategy, _super);
  183. function MockLocationStrategy() {
  184. _super.call(this);
  185. this.internalBaseHref = '/';
  186. this.internalPath = '/';
  187. this.internalTitle = '';
  188. this.urlChanges = [];
  189. this._subject = new async_1.EventEmitter();
  190. }
  191. MockLocationStrategy.prototype.simulatePopState = function(url) {
  192. this.internalPath = url;
  193. async_1.ObservableWrapper.callEmit(this._subject, new _MockPopStateEvent(this.path()));
  194. };
  195. MockLocationStrategy.prototype.path = function() {
  196. return this.internalPath;
  197. };
  198. MockLocationStrategy.prototype.prepareExternalUrl = function(internal) {
  199. if (internal.startsWith('/') && this.internalBaseHref.endsWith('/')) {
  200. return this.internalBaseHref + internal.substring(1);
  201. }
  202. return this.internalBaseHref + internal;
  203. };
  204. MockLocationStrategy.prototype.pushState = function(ctx, title, path, query) {
  205. this.internalTitle = title;
  206. var url = path + (query.length > 0 ? ('?' + query) : '');
  207. this.internalPath = url;
  208. var externalUrl = this.prepareExternalUrl(url);
  209. this.urlChanges.push(externalUrl);
  210. };
  211. MockLocationStrategy.prototype.replaceState = function(ctx, title, path, query) {
  212. this.internalTitle = title;
  213. var url = path + (query.length > 0 ? ('?' + query) : '');
  214. this.internalPath = url;
  215. var externalUrl = this.prepareExternalUrl(url);
  216. this.urlChanges.push('replace: ' + externalUrl);
  217. };
  218. MockLocationStrategy.prototype.onPopState = function(fn) {
  219. async_1.ObservableWrapper.subscribe(this._subject, fn);
  220. };
  221. MockLocationStrategy.prototype.getBaseHref = function() {
  222. return this.internalBaseHref;
  223. };
  224. MockLocationStrategy.prototype.back = function() {
  225. if (this.urlChanges.length > 0) {
  226. this.urlChanges.pop();
  227. var nextUrl = this.urlChanges.length > 0 ? this.urlChanges[this.urlChanges.length - 1] : '';
  228. this.simulatePopState(nextUrl);
  229. }
  230. };
  231. MockLocationStrategy.prototype.forward = function() {
  232. throw 'not implemented';
  233. };
  234. MockLocationStrategy = __decorate([di_1.Injectable(), __metadata('design:paramtypes', [])], MockLocationStrategy);
  235. return MockLocationStrategy;
  236. })(location_strategy_1.LocationStrategy);
  237. exports.MockLocationStrategy = MockLocationStrategy;
  238. var _MockPopStateEvent = (function() {
  239. function _MockPopStateEvent(newUrl) {
  240. this.newUrl = newUrl;
  241. this.pop = true;
  242. this.type = 'popstate';
  243. }
  244. return _MockPopStateEvent;
  245. })();
  246. global.define = __define;
  247. return module.exports;
  248. });
  249. System.register("angular2/router/testing", ["angular2/src/mock/mock_location_strategy", "angular2/src/mock/location_mock"], true, function(require, exports, module) {
  250. var global = System.global,
  251. __define = global.define;
  252. global.define = undefined;
  253. function __export(m) {
  254. for (var p in m)
  255. if (!exports.hasOwnProperty(p))
  256. exports[p] = m[p];
  257. }
  258. __export(require("angular2/src/mock/mock_location_strategy"));
  259. __export(require("angular2/src/mock/location_mock"));
  260. global.define = __define;
  261. return module.exports;
  262. });
  263. System.register("angular2/src/http/headers", ["angular2/src/facade/lang", "angular2/src/facade/exceptions", "angular2/src/facade/collection"], true, function(require, exports, module) {
  264. var global = System.global,
  265. __define = global.define;
  266. global.define = undefined;
  267. var lang_1 = require("angular2/src/facade/lang");
  268. var exceptions_1 = require("angular2/src/facade/exceptions");
  269. var collection_1 = require("angular2/src/facade/collection");
  270. var Headers = (function() {
  271. function Headers(headers) {
  272. var _this = this;
  273. if (headers instanceof Headers) {
  274. this._headersMap = headers._headersMap;
  275. return ;
  276. }
  277. this._headersMap = new collection_1.Map();
  278. if (lang_1.isBlank(headers)) {
  279. return ;
  280. }
  281. collection_1.StringMapWrapper.forEach(headers, function(v, k) {
  282. _this._headersMap.set(k, collection_1.isListLikeIterable(v) ? v : [v]);
  283. });
  284. }
  285. Headers.fromResponseHeaderString = function(headersString) {
  286. return headersString.trim().split('\n').map(function(val) {
  287. return val.split(':');
  288. }).map(function(_a) {
  289. var key = _a[0],
  290. parts = _a.slice(1);
  291. return ([key.trim(), parts.join(':').trim()]);
  292. }).reduce(function(headers, _a) {
  293. var key = _a[0],
  294. value = _a[1];
  295. return !headers.set(key, value) && headers;
  296. }, new Headers());
  297. };
  298. Headers.prototype.append = function(name, value) {
  299. var mapName = this._headersMap.get(name);
  300. var list = collection_1.isListLikeIterable(mapName) ? mapName : [];
  301. list.push(value);
  302. this._headersMap.set(name, list);
  303. };
  304. Headers.prototype.delete = function(name) {
  305. this._headersMap.delete(name);
  306. };
  307. Headers.prototype.forEach = function(fn) {
  308. this._headersMap.forEach(fn);
  309. };
  310. Headers.prototype.get = function(header) {
  311. return collection_1.ListWrapper.first(this._headersMap.get(header));
  312. };
  313. Headers.prototype.has = function(header) {
  314. return this._headersMap.has(header);
  315. };
  316. Headers.prototype.keys = function() {
  317. return collection_1.MapWrapper.keys(this._headersMap);
  318. };
  319. Headers.prototype.set = function(header, value) {
  320. var list = [];
  321. if (collection_1.isListLikeIterable(value)) {
  322. var pushValue = value.join(',');
  323. list.push(pushValue);
  324. } else {
  325. list.push(value);
  326. }
  327. this._headersMap.set(header, list);
  328. };
  329. Headers.prototype.values = function() {
  330. return collection_1.MapWrapper.values(this._headersMap);
  331. };
  332. Headers.prototype.toJSON = function() {
  333. return lang_1.Json.stringify(this.values());
  334. };
  335. Headers.prototype.getAll = function(header) {
  336. var headers = this._headersMap.get(header);
  337. return collection_1.isListLikeIterable(headers) ? headers : [];
  338. };
  339. Headers.prototype.entries = function() {
  340. throw new exceptions_1.BaseException('"entries" method is not implemented on Headers class');
  341. };
  342. return Headers;
  343. })();
  344. exports.Headers = Headers;
  345. global.define = __define;
  346. return module.exports;
  347. });
  348. System.register("angular2/src/http/enums", [], true, function(require, exports, module) {
  349. var global = System.global,
  350. __define = global.define;
  351. global.define = undefined;
  352. (function(RequestMethod) {
  353. RequestMethod[RequestMethod["Get"] = 0] = "Get";
  354. RequestMethod[RequestMethod["Post"] = 1] = "Post";
  355. RequestMethod[RequestMethod["Put"] = 2] = "Put";
  356. RequestMethod[RequestMethod["Delete"] = 3] = "Delete";
  357. RequestMethod[RequestMethod["Options"] = 4] = "Options";
  358. RequestMethod[RequestMethod["Head"] = 5] = "Head";
  359. RequestMethod[RequestMethod["Patch"] = 6] = "Patch";
  360. })(exports.RequestMethod || (exports.RequestMethod = {}));
  361. var RequestMethod = exports.RequestMethod;
  362. (function(ReadyState) {
  363. ReadyState[ReadyState["Unsent"] = 0] = "Unsent";
  364. ReadyState[ReadyState["Open"] = 1] = "Open";
  365. ReadyState[ReadyState["HeadersReceived"] = 2] = "HeadersReceived";
  366. ReadyState[ReadyState["Loading"] = 3] = "Loading";
  367. ReadyState[ReadyState["Done"] = 4] = "Done";
  368. ReadyState[ReadyState["Cancelled"] = 5] = "Cancelled";
  369. })(exports.ReadyState || (exports.ReadyState = {}));
  370. var ReadyState = exports.ReadyState;
  371. (function(ResponseType) {
  372. ResponseType[ResponseType["Basic"] = 0] = "Basic";
  373. ResponseType[ResponseType["Cors"] = 1] = "Cors";
  374. ResponseType[ResponseType["Default"] = 2] = "Default";
  375. ResponseType[ResponseType["Error"] = 3] = "Error";
  376. ResponseType[ResponseType["Opaque"] = 4] = "Opaque";
  377. })(exports.ResponseType || (exports.ResponseType = {}));
  378. var ResponseType = exports.ResponseType;
  379. global.define = __define;
  380. return module.exports;
  381. });
  382. System.register("angular2/src/http/http_utils", ["angular2/src/facade/lang", "angular2/src/http/enums", "angular2/src/facade/exceptions", "angular2/src/facade/lang"], true, function(require, exports, module) {
  383. var global = System.global,
  384. __define = global.define;
  385. global.define = undefined;
  386. var lang_1 = require("angular2/src/facade/lang");
  387. var enums_1 = require("angular2/src/http/enums");
  388. var exceptions_1 = require("angular2/src/facade/exceptions");
  389. function normalizeMethodName(method) {
  390. if (lang_1.isString(method)) {
  391. var originalMethod = method;
  392. method = method.replace(/(\w)(\w*)/g, function(g0, g1, g2) {
  393. return g1.toUpperCase() + g2.toLowerCase();
  394. });
  395. method = enums_1.RequestMethod[method];
  396. if (typeof method !== 'number')
  397. throw exceptions_1.makeTypeError("Invalid request method. The method \"" + originalMethod + "\" is not supported.");
  398. }
  399. return method;
  400. }
  401. exports.normalizeMethodName = normalizeMethodName;
  402. exports.isSuccess = function(status) {
  403. return (status >= 200 && status < 300);
  404. };
  405. function getResponseURL(xhr) {
  406. if ('responseURL' in xhr) {
  407. return xhr.responseURL;
  408. }
  409. if (/^X-Request-URL:/m.test(xhr.getAllResponseHeaders())) {
  410. return xhr.getResponseHeader('X-Request-URL');
  411. }
  412. return ;
  413. }
  414. exports.getResponseURL = getResponseURL;
  415. var lang_2 = require("angular2/src/facade/lang");
  416. exports.isJsObject = lang_2.isJsObject;
  417. global.define = __define;
  418. return module.exports;
  419. });
  420. System.register("angular2/src/http/static_request", ["angular2/src/http/headers", "angular2/src/http/http_utils", "angular2/src/facade/lang"], true, function(require, exports, module) {
  421. var global = System.global,
  422. __define = global.define;
  423. global.define = undefined;
  424. var headers_1 = require("angular2/src/http/headers");
  425. var http_utils_1 = require("angular2/src/http/http_utils");
  426. var lang_1 = require("angular2/src/facade/lang");
  427. var Request = (function() {
  428. function Request(requestOptions) {
  429. var url = requestOptions.url;
  430. this.url = requestOptions.url;
  431. if (lang_1.isPresent(requestOptions.search)) {
  432. var search = requestOptions.search.toString();
  433. if (search.length > 0) {
  434. var prefix = '?';
  435. if (lang_1.StringWrapper.contains(this.url, '?')) {
  436. prefix = (this.url[this.url.length - 1] == '&') ? '' : '&';
  437. }
  438. this.url = url + prefix + search;
  439. }
  440. }
  441. this._body = requestOptions.body;
  442. this.method = http_utils_1.normalizeMethodName(requestOptions.method);
  443. this.headers = new headers_1.Headers(requestOptions.headers);
  444. }
  445. Request.prototype.text = function() {
  446. return lang_1.isPresent(this._body) ? this._body.toString() : '';
  447. };
  448. return Request;
  449. })();
  450. exports.Request = Request;
  451. global.define = __define;
  452. return module.exports;
  453. });
  454. System.register("angular2/src/http/backends/mock_backend", ["angular2/core", "angular2/src/http/static_request", "angular2/src/http/enums", "angular2/src/facade/lang", "angular2/src/facade/exceptions", "rxjs/Subject", "rxjs/subject/ReplaySubject", "rxjs/operator/take"], true, function(require, exports, module) {
  455. var global = System.global,
  456. __define = global.define;
  457. global.define = undefined;
  458. var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
  459. var c = arguments.length,
  460. r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
  461. d;
  462. if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
  463. r = Reflect.decorate(decorators, target, key, desc);
  464. else
  465. for (var i = decorators.length - 1; i >= 0; i--)
  466. if (d = decorators[i])
  467. r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  468. return c > 3 && r && Object.defineProperty(target, key, r), r;
  469. };
  470. var __metadata = (this && this.__metadata) || function(k, v) {
  471. if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
  472. return Reflect.metadata(k, v);
  473. };
  474. var core_1 = require("angular2/core");
  475. var static_request_1 = require("angular2/src/http/static_request");
  476. var enums_1 = require("angular2/src/http/enums");
  477. var lang_1 = require("angular2/src/facade/lang");
  478. var exceptions_1 = require("angular2/src/facade/exceptions");
  479. var Subject_1 = require("rxjs/Subject");
  480. var ReplaySubject_1 = require("rxjs/subject/ReplaySubject");
  481. var take_1 = require("rxjs/operator/take");
  482. var MockConnection = (function() {
  483. function MockConnection(req) {
  484. this.response = take_1.take.call(new ReplaySubject_1.ReplaySubject(1), 1);
  485. this.readyState = enums_1.ReadyState.Open;
  486. this.request = req;
  487. }
  488. MockConnection.prototype.mockRespond = function(res) {
  489. if (this.readyState === enums_1.ReadyState.Done || this.readyState === enums_1.ReadyState.Cancelled) {
  490. throw new exceptions_1.BaseException('Connection has already been resolved');
  491. }
  492. this.readyState = enums_1.ReadyState.Done;
  493. this.response.next(res);
  494. this.response.complete();
  495. };
  496. MockConnection.prototype.mockDownload = function(res) {};
  497. MockConnection.prototype.mockError = function(err) {
  498. this.readyState = enums_1.ReadyState.Done;
  499. this.response.error(err);
  500. };
  501. return MockConnection;
  502. })();
  503. exports.MockConnection = MockConnection;
  504. var MockBackend = (function() {
  505. function MockBackend() {
  506. var _this = this;
  507. this.connectionsArray = [];
  508. this.connections = new Subject_1.Subject();
  509. this.connections.subscribe(function(connection) {
  510. return _this.connectionsArray.push(connection);
  511. });
  512. this.pendingConnections = new Subject_1.Subject();
  513. }
  514. MockBackend.prototype.verifyNoPendingRequests = function() {
  515. var pending = 0;
  516. this.pendingConnections.subscribe(function(c) {
  517. return pending++;
  518. });
  519. if (pending > 0)
  520. throw new exceptions_1.BaseException(pending + " pending connections to be resolved");
  521. };
  522. MockBackend.prototype.resolveAllConnections = function() {
  523. this.connections.subscribe(function(c) {
  524. return c.readyState = 4;
  525. });
  526. };
  527. MockBackend.prototype.createConnection = function(req) {
  528. if (!lang_1.isPresent(req) || !(req instanceof static_request_1.Request)) {
  529. throw new exceptions_1.BaseException("createConnection requires an instance of Request, got " + req);
  530. }
  531. var connection = new MockConnection(req);
  532. this.connections.next(connection);
  533. return connection;
  534. };
  535. MockBackend = __decorate([core_1.Injectable(), __metadata('design:paramtypes', [])], MockBackend);
  536. return MockBackend;
  537. })();
  538. exports.MockBackend = MockBackend;
  539. global.define = __define;
  540. return module.exports;
  541. });
  542. System.register("angular2/http/testing", ["angular2/src/http/backends/mock_backend"], true, function(require, exports, module) {
  543. var global = System.global,
  544. __define = global.define;
  545. global.define = undefined;
  546. function __export(m) {
  547. for (var p in m)
  548. if (!exports.hasOwnProperty(p))
  549. exports[p] = m[p];
  550. }
  551. __export(require("angular2/src/http/backends/mock_backend"));
  552. global.define = __define;
  553. return module.exports;
  554. });
  555. System.register("angular2/src/mock/animation_builder_mock", ["angular2/src/core/di", "angular2/src/animate/animation_builder", "angular2/src/animate/css_animation_builder", "angular2/src/animate/animation", "angular2/src/animate/browser_details"], true, function(require, exports, module) {
  556. var global = System.global,
  557. __define = global.define;
  558. global.define = undefined;
  559. var __extends = (this && this.__extends) || function(d, b) {
  560. for (var p in b)
  561. if (b.hasOwnProperty(p))
  562. d[p] = b[p];
  563. function __() {
  564. this.constructor = d;
  565. }
  566. d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
  567. };
  568. var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
  569. var c = arguments.length,
  570. r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
  571. d;
  572. if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
  573. r = Reflect.decorate(decorators, target, key, desc);
  574. else
  575. for (var i = decorators.length - 1; i >= 0; i--)
  576. if (d = decorators[i])
  577. r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  578. return c > 3 && r && Object.defineProperty(target, key, r), r;
  579. };
  580. var __metadata = (this && this.__metadata) || function(k, v) {
  581. if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
  582. return Reflect.metadata(k, v);
  583. };
  584. var di_1 = require("angular2/src/core/di");
  585. var animation_builder_1 = require("angular2/src/animate/animation_builder");
  586. var css_animation_builder_1 = require("angular2/src/animate/css_animation_builder");
  587. var animation_1 = require("angular2/src/animate/animation");
  588. var browser_details_1 = require("angular2/src/animate/browser_details");
  589. var MockAnimationBuilder = (function(_super) {
  590. __extends(MockAnimationBuilder, _super);
  591. function MockAnimationBuilder() {
  592. _super.call(this, null);
  593. }
  594. MockAnimationBuilder.prototype.css = function() {
  595. return new MockCssAnimationBuilder();
  596. };
  597. MockAnimationBuilder = __decorate([di_1.Injectable(), __metadata('design:paramtypes', [])], MockAnimationBuilder);
  598. return MockAnimationBuilder;
  599. })(animation_builder_1.AnimationBuilder);
  600. exports.MockAnimationBuilder = MockAnimationBuilder;
  601. var MockCssAnimationBuilder = (function(_super) {
  602. __extends(MockCssAnimationBuilder, _super);
  603. function MockCssAnimationBuilder() {
  604. _super.call(this, null);
  605. }
  606. MockCssAnimationBuilder.prototype.start = function(element) {
  607. return new MockAnimation(element, this.data);
  608. };
  609. return MockCssAnimationBuilder;
  610. })(css_animation_builder_1.CssAnimationBuilder);
  611. var MockBrowserAbstraction = (function(_super) {
  612. __extends(MockBrowserAbstraction, _super);
  613. function MockBrowserAbstraction() {
  614. _super.apply(this, arguments);
  615. }
  616. MockBrowserAbstraction.prototype.doesElapsedTimeIncludesDelay = function() {
  617. this.elapsedTimeIncludesDelay = false;
  618. };
  619. return MockBrowserAbstraction;
  620. })(browser_details_1.BrowserDetails);
  621. var MockAnimation = (function(_super) {
  622. __extends(MockAnimation, _super);
  623. function MockAnimation(element, data) {
  624. _super.call(this, element, data, new MockBrowserAbstraction());
  625. }
  626. MockAnimation.prototype.wait = function(callback) {
  627. this._callback = callback;
  628. };
  629. MockAnimation.prototype.flush = function() {
  630. this._callback(0);
  631. this._callback = null;
  632. };
  633. return MockAnimation;
  634. })(animation_1.Animation);
  635. global.define = __define;
  636. return module.exports;
  637. });
  638. System.register("angular2/src/mock/directive_resolver_mock", ["angular2/src/core/di", "angular2/src/facade/collection", "angular2/src/facade/lang", "angular2/src/core/metadata", "angular2/src/core/linker/directive_resolver"], true, function(require, exports, module) {
  639. var global = System.global,
  640. __define = global.define;
  641. global.define = undefined;
  642. var __extends = (this && this.__extends) || function(d, b) {
  643. for (var p in b)
  644. if (b.hasOwnProperty(p))
  645. d[p] = b[p];
  646. function __() {
  647. this.constructor = d;
  648. }
  649. d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
  650. };
  651. var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
  652. var c = arguments.length,
  653. r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
  654. d;
  655. if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
  656. r = Reflect.decorate(decorators, target, key, desc);
  657. else
  658. for (var i = decorators.length - 1; i >= 0; i--)
  659. if (d = decorators[i])
  660. r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  661. return c > 3 && r && Object.defineProperty(target, key, r), r;
  662. };
  663. var __metadata = (this && this.__metadata) || function(k, v) {
  664. if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
  665. return Reflect.metadata(k, v);
  666. };
  667. var di_1 = require("angular2/src/core/di");
  668. var collection_1 = require("angular2/src/facade/collection");
  669. var lang_1 = require("angular2/src/facade/lang");
  670. var metadata_1 = require("angular2/src/core/metadata");
  671. var directive_resolver_1 = require("angular2/src/core/linker/directive_resolver");
  672. var MockDirectiveResolver = (function(_super) {
  673. __extends(MockDirectiveResolver, _super);
  674. function MockDirectiveResolver() {
  675. _super.apply(this, arguments);
  676. this._providerOverrides = new collection_1.Map();
  677. this.viewProviderOverrides = new collection_1.Map();
  678. }
  679. MockDirectiveResolver.prototype.resolve = function(type) {
  680. var dm = _super.prototype.resolve.call(this, type);
  681. var providerOverrides = this._providerOverrides.get(type);
  682. var viewProviderOverrides = this.viewProviderOverrides.get(type);
  683. var providers = dm.providers;
  684. if (lang_1.isPresent(providerOverrides)) {
  685. providers = dm.providers.concat(providerOverrides);
  686. }
  687. if (dm instanceof metadata_1.ComponentMetadata) {
  688. var viewProviders = dm.viewProviders;
  689. if (lang_1.isPresent(viewProviderOverrides)) {
  690. viewProviders = dm.viewProviders.concat(viewProviderOverrides);
  691. }
  692. return new metadata_1.ComponentMetadata({
  693. selector: dm.selector,
  694. inputs: dm.inputs,
  695. outputs: dm.outputs,
  696. host: dm.host,
  697. exportAs: dm.exportAs,
  698. moduleId: dm.moduleId,
  699. queries: dm.queries,
  700. changeDetection: dm.changeDetection,
  701. providers: providers,
  702. viewProviders: viewProviders
  703. });
  704. }
  705. return new metadata_1.DirectiveMetadata({
  706. selector: dm.selector,
  707. inputs: dm.inputs,
  708. outputs: dm.outputs,
  709. host: dm.host,
  710. providers: providers,
  711. exportAs: dm.exportAs,
  712. queries: dm.queries
  713. });
  714. };
  715. MockDirectiveResolver.prototype.setBindingsOverride = function(type, bindings) {
  716. this._providerOverrides.set(type, bindings);
  717. };
  718. MockDirectiveResolver.prototype.setViewBindingsOverride = function(type, viewBindings) {
  719. this.viewProviderOverrides.set(type, viewBindings);
  720. };
  721. MockDirectiveResolver.prototype.setProvidersOverride = function(type, bindings) {
  722. this._providerOverrides.set(type, bindings);
  723. };
  724. MockDirectiveResolver.prototype.setViewProvidersOverride = function(type, viewBindings) {
  725. this.viewProviderOverrides.set(type, viewBindings);
  726. };
  727. MockDirectiveResolver = __decorate([di_1.Injectable(), __metadata('design:paramtypes', [])], MockDirectiveResolver);
  728. return MockDirectiveResolver;
  729. })(directive_resolver_1.DirectiveResolver);
  730. exports.MockDirectiveResolver = MockDirectiveResolver;
  731. global.define = __define;
  732. return module.exports;
  733. });
  734. System.register("angular2/src/mock/view_resolver_mock", ["angular2/src/core/di", "angular2/src/facade/collection", "angular2/src/facade/lang", "angular2/src/facade/exceptions", "angular2/src/core/metadata", "angular2/src/core/linker/view_resolver"], true, function(require, exports, module) {
  735. var global = System.global,
  736. __define = global.define;
  737. global.define = undefined;
  738. var __extends = (this && this.__extends) || function(d, b) {
  739. for (var p in b)
  740. if (b.hasOwnProperty(p))
  741. d[p] = b[p];
  742. function __() {
  743. this.constructor = d;
  744. }
  745. d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
  746. };
  747. var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
  748. var c = arguments.length,
  749. r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
  750. d;
  751. if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
  752. r = Reflect.decorate(decorators, target, key, desc);
  753. else
  754. for (var i = decorators.length - 1; i >= 0; i--)
  755. if (d = decorators[i])
  756. r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  757. return c > 3 && r && Object.defineProperty(target, key, r), r;
  758. };
  759. var __metadata = (this && this.__metadata) || function(k, v) {
  760. if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
  761. return Reflect.metadata(k, v);
  762. };
  763. var di_1 = require("angular2/src/core/di");
  764. var collection_1 = require("angular2/src/facade/collection");
  765. var lang_1 = require("angular2/src/facade/lang");
  766. var exceptions_1 = require("angular2/src/facade/exceptions");
  767. var metadata_1 = require("angular2/src/core/metadata");
  768. var view_resolver_1 = require("angular2/src/core/linker/view_resolver");
  769. var MockViewResolver = (function(_super) {
  770. __extends(MockViewResolver, _super);
  771. function MockViewResolver() {
  772. _super.call(this);
  773. this._views = new collection_1.Map();
  774. this._inlineTemplates = new collection_1.Map();
  775. this._viewCache = new collection_1.Map();
  776. this._directiveOverrides = new collection_1.Map();
  777. }
  778. MockViewResolver.prototype.setView = function(component, view) {
  779. this._checkOverrideable(component);
  780. this._views.set(component, view);
  781. };
  782. MockViewResolver.prototype.setInlineTemplate = function(component, template) {
  783. this._checkOverrideable(component);
  784. this._inlineTemplates.set(component, template);
  785. };
  786. MockViewResolver.prototype.overrideViewDirective = function(component, from, to) {
  787. this._checkOverrideable(component);
  788. var overrides = this._directiveOverrides.get(component);
  789. if (lang_1.isBlank(overrides)) {
  790. overrides = new collection_1.Map();
  791. this._directiveOverrides.set(component, overrides);
  792. }
  793. overrides.set(from, to);
  794. };
  795. MockViewResolver.prototype.resolve = function(component) {
  796. var view = this._viewCache.get(component);
  797. if (lang_1.isPresent(view))
  798. return view;
  799. view = this._views.get(component);
  800. if (lang_1.isBlank(view)) {
  801. view = _super.prototype.resolve.call(this, component);
  802. }
  803. var directives = view.directives;
  804. var overrides = this._directiveOverrides.get(component);
  805. if (lang_1.isPresent(overrides) && lang_1.isPresent(directives)) {
  806. directives = collection_1.ListWrapper.clone(view.directives);
  807. overrides.forEach(function(to, from) {
  808. var srcIndex = directives.indexOf(from);
  809. if (srcIndex == -1) {
  810. throw new exceptions_1.BaseException("Overriden directive " + lang_1.stringify(from) + " not found in the template of " + lang_1.stringify(component));
  811. }
  812. directives[srcIndex] = to;
  813. });
  814. view = new metadata_1.ViewMetadata({
  815. template: view.template,
  816. templateUrl: view.templateUrl,
  817. directives: directives
  818. });
  819. }
  820. var inlineTemplate = this._inlineTemplates.get(component);
  821. if (lang_1.isPresent(inlineTemplate)) {
  822. view = new metadata_1.ViewMetadata({
  823. template: inlineTemplate,
  824. templateUrl: null,
  825. directives: view.directives
  826. });
  827. }
  828. this._viewCache.set(component, view);
  829. return view;
  830. };
  831. MockViewResolver.prototype._checkOverrideable = function(component) {
  832. var cached = this._viewCache.get(component);
  833. if (lang_1.isPresent(cached)) {
  834. throw new exceptions_1.BaseException("The component " + lang_1.stringify(component) + " has already been compiled, its configuration can not be changed");
  835. }
  836. };
  837. MockViewResolver = __decorate([di_1.Injectable(), __metadata('design:paramtypes', [])], MockViewResolver);
  838. return MockViewResolver;
  839. })(view_resolver_1.ViewResolver);
  840. exports.MockViewResolver = MockViewResolver;
  841. global.define = __define;
  842. return module.exports;
  843. });
  844. System.register("angular2/src/mock/ng_zone_mock", ["angular2/src/core/di", "angular2/src/core/zone/ng_zone", "angular2/src/facade/async"], true, function(require, exports, module) {
  845. var global = System.global,
  846. __define = global.define;
  847. global.define = undefined;
  848. var __extends = (this && this.__extends) || function(d, b) {
  849. for (var p in b)
  850. if (b.hasOwnProperty(p))
  851. d[p] = b[p];
  852. function __() {
  853. this.constructor = d;
  854. }
  855. d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
  856. };
  857. var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
  858. var c = arguments.length,
  859. r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
  860. d;
  861. if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
  862. r = Reflect.decorate(decorators, target, key, desc);
  863. else
  864. for (var i = decorators.length - 1; i >= 0; i--)
  865. if (d = decorators[i])
  866. r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  867. return c > 3 && r && Object.defineProperty(target, key, r), r;
  868. };
  869. var __metadata = (this && this.__metadata) || function(k, v) {
  870. if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
  871. return Reflect.metadata(k, v);
  872. };
  873. var di_1 = require("angular2/src/core/di");
  874. var ng_zone_1 = require("angular2/src/core/zone/ng_zone");
  875. var async_1 = require("angular2/src/facade/async");
  876. var MockNgZone = (function(_super) {
  877. __extends(MockNgZone, _super);
  878. function MockNgZone() {
  879. _super.call(this, {enableLongStackTrace: false});
  880. this._mockOnEventDone = new async_1.EventEmitter(false);
  881. }
  882. Object.defineProperty(MockNgZone.prototype, "onEventDone", {
  883. get: function() {
  884. return this._mockOnEventDone;
  885. },
  886. enumerable: true,
  887. configurable: true
  888. });
  889. MockNgZone.prototype.run = function(fn) {
  890. return fn();
  891. };
  892. MockNgZone.prototype.runOutsideAngular = function(fn) {
  893. return fn();
  894. };
  895. MockNgZone.prototype.simulateZoneExit = function() {
  896. async_1.ObservableWrapper.callNext(this.onEventDone, null);
  897. };
  898. MockNgZone = __decorate([di_1.Injectable(), __metadata('design:paramtypes', [])], MockNgZone);
  899. return MockNgZone;
  900. })(ng_zone_1.NgZone);
  901. exports.MockNgZone = MockNgZone;
  902. global.define = __define;
  903. return module.exports;
  904. });
  905. System.register("angular2/src/testing/utils", ["angular2/core", "angular2/src/facade/collection", "angular2/src/platform/dom/dom_adapter", "angular2/src/facade/lang"], true, function(require, exports, module) {
  906. var global = System.global,
  907. __define = global.define;
  908. global.define = undefined;
  909. var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
  910. var c = arguments.length,
  911. r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
  912. d;
  913. if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
  914. r = Reflect.decorate(decorators, target, key, desc);
  915. else
  916. for (var i = decorators.length - 1; i >= 0; i--)
  917. if (d = decorators[i])
  918. r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  919. return c > 3 && r && Object.defineProperty(target, key, r), r;
  920. };
  921. var __metadata = (this && this.__metadata) || function(k, v) {
  922. if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
  923. return Reflect.metadata(k, v);
  924. };
  925. var core_1 = require("angular2/core");
  926. var collection_1 = require("angular2/src/facade/collection");
  927. var dom_adapter_1 = require("angular2/src/platform/dom/dom_adapter");
  928. var lang_1 = require("angular2/src/facade/lang");
  929. var Log = (function() {
  930. function Log() {
  931. this._result = [];
  932. }
  933. Log.prototype.add = function(value) {
  934. this._result.push(value);
  935. };
  936. Log.prototype.fn = function(value) {
  937. var _this = this;
  938. return function(a1, a2, a3, a4, a5) {
  939. if (a1 === void 0) {
  940. a1 = null;
  941. }
  942. if (a2 === void 0) {
  943. a2 = null;
  944. }
  945. if (a3 === void 0) {
  946. a3 = null;
  947. }
  948. if (a4 === void 0) {
  949. a4 = null;
  950. }
  951. if (a5 === void 0) {
  952. a5 = null;
  953. }
  954. _this._result.push(value);
  955. };
  956. };
  957. Log.prototype.clear = function() {
  958. this._result = [];
  959. };
  960. Log.prototype.result = function() {
  961. return this._result.join("; ");
  962. };
  963. Log = __decorate([core_1.Injectable(), __metadata('design:paramtypes', [])], Log);
  964. return Log;
  965. })();
  966. exports.Log = Log;
  967. var BrowserDetection = (function() {
  968. function BrowserDetection(ua) {
  969. if (lang_1.isPresent(ua)) {
  970. this._ua = ua;
  971. } else {
  972. this._ua = lang_1.isPresent(dom_adapter_1.DOM) ? dom_adapter_1.DOM.getUserAgent() : '';
  973. }
  974. }
  975. Object.defineProperty(BrowserDetection.prototype, "isFirefox", {
  976. get: function() {
  977. return this._ua.indexOf('Firefox') > -1;
  978. },
  979. enumerable: true,
  980. configurable: true
  981. });
  982. Object.defineProperty(BrowserDetection.prototype, "isAndroid", {
  983. get: function() {
  984. return this._ua.indexOf('Mozilla/5.0') > -1 && this._ua.indexOf('Android') > -1 && this._ua.indexOf('AppleWebKit') > -1 && this._ua.indexOf('Chrome') == -1;
  985. },
  986. enumerable: true,
  987. configurable: true
  988. });
  989. Object.defineProperty(BrowserDetection.prototype, "isEdge", {
  990. get: function() {
  991. return this._ua.indexOf('Edge') > -1;
  992. },
  993. enumerable: true,
  994. configurable: true
  995. });
  996. Object.defineProperty(BrowserDetection.prototype, "isIE", {
  997. get: function() {
  998. return this._ua.indexOf('Trident') > -1;
  999. },
  1000. enumerable: true,
  1001. configurable: true
  1002. });
  1003. Object.defineProperty(BrowserDetection.prototype, "isWebkit", {
  1004. get: function() {
  1005. return this._ua.indexOf('AppleWebKit') > -1 && this._ua.indexOf('Edge') == -1;
  1006. },
  1007. enumerable: true,
  1008. configurable: true
  1009. });
  1010. Object.defineProperty(BrowserDetection.prototype, "isIOS7", {
  1011. get: function() {
  1012. return this._ua.indexOf('iPhone OS 7') > -1 || this._ua.indexOf('iPad OS 7') > -1;
  1013. },
  1014. enumerable: true,
  1015. configurable: true
  1016. });
  1017. Object.defineProperty(BrowserDetection.prototype, "isSlow", {
  1018. get: function() {
  1019. return this.isAndroid || this.isIE || this.isIOS7;
  1020. },
  1021. enumerable: true,
  1022. configurable: true
  1023. });
  1024. Object.defineProperty(BrowserDetection.prototype, "supportsIntlApi", {
  1025. get: function() {
  1026. return this._ua.indexOf('Chrome/4') > -1 && this._ua.indexOf('Edge') == -1;
  1027. },
  1028. enumerable: true,
  1029. configurable: true
  1030. });
  1031. return BrowserDetection;
  1032. })();
  1033. exports.BrowserDetection = BrowserDetection;
  1034. exports.browserDetection = new BrowserDetection(null);
  1035. function dispatchEvent(element, eventType) {
  1036. dom_adapter_1.DOM.dispatchEvent(element, dom_adapter_1.DOM.createEvent(eventType));
  1037. }
  1038. exports.dispatchEvent = dispatchEvent;
  1039. function el(html) {
  1040. return dom_adapter_1.DOM.firstChild(dom_adapter_1.DOM.content(dom_adapter_1.DOM.createTemplate(html)));
  1041. }
  1042. exports.el = el;
  1043. var _RE_SPECIAL_CHARS = ['-', '[', ']', '/', '{', '}', '\\', '(', ')', '*', '+', '?', '.', '^', '$', '|'];
  1044. var _ESCAPE_RE = lang_1.RegExpWrapper.create("[\\" + _RE_SPECIAL_CHARS.join('\\') + "]");
  1045. function containsRegexp(input) {
  1046. return lang_1.RegExpWrapper.create(lang_1.StringWrapper.replaceAllMapped(input, _ESCAPE_RE, function(match) {
  1047. return ("\\" + match[0]);
  1048. }));
  1049. }
  1050. exports.containsRegexp = containsRegexp;
  1051. function normalizeCSS(css) {
  1052. css = lang_1.StringWrapper.replaceAll(css, /\s+/g, ' ');
  1053. css = lang_1.StringWrapper.replaceAll(css, /:\s/g, ':');
  1054. css = lang_1.StringWrapper.replaceAll(css, /'/g, '"');
  1055. css = lang_1.StringWrapper.replaceAll(css, / }/g, '}');
  1056. css = lang_1.StringWrapper.replaceAllMapped(css, /url\((\"|\s)(.+)(\"|\s)\)(\s*)/g, function(match) {
  1057. return ("url(\"" + match[2] + "\")");
  1058. });
  1059. css = lang_1.StringWrapper.replaceAllMapped(css, /\[(.+)=([^"\]]+)\]/g, function(match) {
  1060. return ("[" + match[1] + "=\"" + match[2] + "\"]");
  1061. });
  1062. return css;
  1063. }
  1064. exports.normalizeCSS = normalizeCSS;
  1065. var _singleTagWhitelist = ['br', 'hr', 'input'];
  1066. function stringifyElement(el) {
  1067. var result = '';
  1068. if (dom_adapter_1.DOM.isElementNode(el)) {
  1069. var tagName = dom_adapter_1.DOM.tagName(el).toLowerCase();
  1070. result += "<" + tagName;
  1071. var attributeMap = dom_adapter_1.DOM.attributeMap(el);
  1072. var keys = [];
  1073. attributeMap.forEach(function(v, k) {
  1074. return keys.push(k);
  1075. });
  1076. collection_1.ListWrapper.sort(keys);
  1077. for (var i = 0; i < keys.length; i++) {
  1078. var key = keys[i];
  1079. var attValue = attributeMap.get(key);
  1080. if (!lang_1.isString(attValue)) {
  1081. result += " " + key;
  1082. } else {
  1083. result += " " + key + "=\"" + attValue + "\"";
  1084. }
  1085. }
  1086. result += '>';
  1087. var childrenRoot = dom_adapter_1.DOM.templateAwareRoot(el);
  1088. var children = lang_1.isPresent(childrenRoot) ? dom_adapter_1.DOM.childNodes(childrenRoot) : [];
  1089. for (var j = 0; j < children.length; j++) {
  1090. result += stringifyElement(children[j]);
  1091. }
  1092. if (!collection_1.ListWrapper.contains(_singleTagWhitelist, tagName)) {
  1093. result += "</" + tagName + ">";
  1094. }
  1095. } else if (dom_adapter_1.DOM.isCommentNode(el)) {
  1096. result += "<!--" + dom_adapter_1.DOM.nodeValue(el) + "-->";
  1097. } else {
  1098. result += dom_adapter_1.DOM.getText(el);
  1099. }
  1100. return result;
  1101. }
  1102. exports.stringifyElement = stringifyElement;
  1103. global.define = __define;
  1104. return module.exports;
  1105. });
  1106. System.register("angular2/src/web_workers/shared/api", ["angular2/src/facade/lang", "angular2/src/core/di"], true, function(require, exports, module) {
  1107. var global = System.global,
  1108. __define = global.define;
  1109. global.define = undefined;
  1110. var lang_1 = require("angular2/src/facade/lang");
  1111. var di_1 = require("angular2/src/core/di");
  1112. exports.ON_WEB_WORKER = lang_1.CONST_EXPR(new di_1.OpaqueToken('WebWorker.onWebWorker'));
  1113. var WebWorkerElementRef = (function() {
  1114. function WebWorkerElementRef(renderView, boundElementIndex) {
  1115. this.renderView = renderView;
  1116. this.boundElementIndex = boundElementIndex;
  1117. }
  1118. return WebWorkerElementRef;
  1119. })();
  1120. exports.WebWorkerElementRef = WebWorkerElementRef;
  1121. var WebWorkerTemplateCmd = (function() {
  1122. function WebWorkerTemplateCmd() {}
  1123. WebWorkerTemplateCmd.prototype.visit = function(visitor, context) {
  1124. return null;
  1125. };
  1126. return WebWorkerTemplateCmd;
  1127. })();
  1128. exports.WebWorkerTemplateCmd = WebWorkerTemplateCmd;
  1129. var WebWorkerTextCmd = (function() {
  1130. function WebWorkerTextCmd(isBound, ngContentIndex, value) {
  1131. this.isBound = isBound;
  1132. this.ngContentIndex = ngContentIndex;
  1133. this.value = value;
  1134. }
  1135. WebWorkerTextCmd.prototype.visit = function(visitor, context) {
  1136. return visitor.visitText(this, context);
  1137. };
  1138. return WebWorkerTextCmd;
  1139. })();
  1140. exports.WebWorkerTextCmd = WebWorkerTextCmd;
  1141. var WebWorkerNgContentCmd = (function() {
  1142. function WebWorkerNgContentCmd(index, ngContentIndex) {
  1143. this.index = index;
  1144. this.ngContentIndex = ngContentIndex;
  1145. }
  1146. WebWorkerNgContentCmd.prototype.visit = function(visitor, context) {
  1147. return visitor.visitNgContent(this, context);
  1148. };
  1149. return WebWorkerNgContentCmd;
  1150. })();
  1151. exports.WebWorkerNgContentCmd = WebWorkerNgContentCmd;
  1152. var WebWorkerBeginElementCmd = (function() {
  1153. function WebWorkerBeginElementCmd(isBound, ngContentIndex, name, attrNameAndValues, eventTargetAndNames) {
  1154. this.isBound = isBound;
  1155. this.ngContentIndex = ngContentIndex;
  1156. this.name = name;
  1157. this.attrNameAndValues = attrNameAndValues;
  1158. this.eventTargetAndNames = eventTargetAndNames;
  1159. }
  1160. WebWorkerBeginElementCmd.prototype.visit = function(visitor, context) {
  1161. return visitor.visitBeginElement(this, context);
  1162. };
  1163. return WebWorkerBeginElementCmd;
  1164. })();
  1165. exports.WebWorkerBeginElementCmd = WebWorkerBeginElementCmd;
  1166. var WebWorkerEndElementCmd = (function() {
  1167. function WebWorkerEndElementCmd() {}
  1168. WebWorkerEndElementCmd.prototype.visit = function(visitor, context) {
  1169. return visitor.visitEndElement(context);
  1170. };
  1171. return WebWorkerEndElementCmd;
  1172. })();
  1173. exports.WebWorkerEndElementCmd = WebWorkerEndElementCmd;
  1174. var WebWorkerBeginComponentCmd = (function() {
  1175. function WebWorkerBeginComponentCmd(isBound, ngContentIndex, name, attrNameAndValues, eventTargetAndNames, templateId) {
  1176. this.isBound = isBound;
  1177. this.ngContentIndex = ngContentIndex;
  1178. this.name = name;
  1179. this.attrNameAndValues = attrNameAndValues;
  1180. this.eventTargetAndNames = eventTargetAndNames;
  1181. this.templateId = templateId;
  1182. }
  1183. WebWorkerBeginComponentCmd.prototype.visit = function(visitor, context) {
  1184. return visitor.visitBeginComponent(this, context);
  1185. };
  1186. return WebWorkerBeginComponentCmd;
  1187. })();
  1188. exports.WebWorkerBeginComponentCmd = WebWorkerBeginComponentCmd;
  1189. var WebWorkerEndComponentCmd = (function() {
  1190. function WebWorkerEndComponentCmd() {}
  1191. WebWorkerEndComponentCmd.prototype.visit = function(visitor, context) {
  1192. return visitor.visitEndComponent(context);
  1193. };
  1194. return WebWorkerEndComponentCmd;
  1195. })();
  1196. exports.WebWorkerEndComponentCmd = WebWorkerEndComponentCmd;
  1197. var WebWorkerEmbeddedTemplateCmd = (function() {
  1198. function WebWorkerEmbeddedTemplateCmd(isBound, ngContentIndex, name, attrNameAndValues, eventTargetAndNames, isMerged, children) {
  1199. this.isBound = isBound;
  1200. this.ngContentIndex = ngContentIndex;
  1201. this.name = name;
  1202. this.attrNameAndValues = attrNameAndValues;
  1203. this.eventTargetAndNames = eventTargetAndNames;
  1204. this.isMerged = isMerged;
  1205. this.children = children;
  1206. }
  1207. WebWorkerEmbeddedTemplateCmd.prototype.visit = function(visitor, context) {
  1208. return visitor.visitEmbeddedTemplate(this, context);
  1209. };
  1210. return WebWorkerEmbeddedTemplateCmd;
  1211. })();
  1212. exports.WebWorkerEmbeddedTemplateCmd = WebWorkerEmbeddedTemplateCmd;
  1213. global.define = __define;
  1214. return module.exports;
  1215. });
  1216. System.register("angular2/src/web_workers/shared/render_proto_view_ref_store", ["angular2/src/core/di", "angular2/src/core/render/api", "angular2/src/web_workers/shared/api"], true, function(require, exports, module) {
  1217. var global = System.global,
  1218. __define = global.define;
  1219. global.define = undefined;
  1220. var __extends = (this && this.__extends) || function(d, b) {
  1221. for (var p in b)
  1222. if (b.hasOwnProperty(p))
  1223. d[p] = b[p];
  1224. function __() {
  1225. this.constructor = d;
  1226. }
  1227. d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
  1228. };
  1229. var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
  1230. var c = arguments.length,
  1231. r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
  1232. d;
  1233. if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
  1234. r = Reflect.decorate(decorators, target, key, desc);
  1235. else
  1236. for (var i = decorators.length - 1; i >= 0; i--)
  1237. if (d = decorators[i])
  1238. r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  1239. return c > 3 && r && Object.defineProperty(target, key, r), r;
  1240. };
  1241. var __metadata = (this && this.__metadata) || function(k, v) {
  1242. if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
  1243. return Reflect.metadata(k, v);
  1244. };
  1245. var __param = (this && this.__param) || function(paramIndex, decorator) {
  1246. return function(target, key) {
  1247. decorator(target, key, paramIndex);
  1248. };
  1249. };
  1250. var di_1 = require("angular2/src/core/di");
  1251. var api_1 = require("angular2/src/core/render/api");
  1252. var api_2 = require("angular2/src/web_workers/shared/api");
  1253. var RenderProtoViewRefStore = (function() {
  1254. function RenderProtoViewRefStore(onWebworker) {
  1255. this._lookupByIndex = new Map();
  1256. this._lookupByProtoView = new Map();
  1257. this._nextIndex = 0;
  1258. this._onWebworker = onWebworker;
  1259. }
  1260. RenderProtoViewRefStore.prototype.allocate = function() {
  1261. var index = this._nextIndex++;
  1262. var result = new WebWorkerRenderProtoViewRef(index);
  1263. this.store(result, index);
  1264. return result;
  1265. };
  1266. RenderProtoViewRefStore.prototype.store = function(ref, index) {
  1267. this._lookupByProtoView.set(ref, index);
  1268. this._lookupByIndex.set(index, ref);
  1269. };
  1270. RenderProtoViewRefStore.prototype.deserialize = function(index) {
  1271. if (index == null) {
  1272. return null;
  1273. }
  1274. return this._lookupByIndex.get(index);
  1275. };
  1276. RenderProtoViewRefStore.prototype.serialize = function(ref) {
  1277. if (ref == null) {
  1278. return null;
  1279. }
  1280. if (this._onWebworker) {
  1281. return ref.refNumber;
  1282. } else {
  1283. return this._lookupByProtoView.get(ref);
  1284. }
  1285. };
  1286. RenderProtoViewRefStore = __decorate([di_1.Injectable(), __param(0, di_1.Inject(api_2.ON_WEB_WORKER)), __metadata('design:paramtypes', [Object])], RenderProtoViewRefStore);
  1287. return RenderProtoViewRefStore;
  1288. })();
  1289. exports.RenderProtoViewRefStore = RenderProtoViewRefStore;
  1290. var WebWorkerRenderProtoViewRef = (function(_super) {
  1291. __extends(WebWorkerRenderProtoViewRef, _super);
  1292. function WebWorkerRenderProtoViewRef(refNumber) {
  1293. _super.call(this);
  1294. this.refNumber = refNumber;
  1295. }
  1296. return WebWorkerRenderProtoViewRef;
  1297. })(api_1.RenderProtoViewRef);
  1298. exports.WebWorkerRenderProtoViewRef = WebWorkerRenderProtoViewRef;
  1299. global.define = __define;
  1300. return module.exports;
  1301. });
  1302. System.register("angular2/src/web_workers/shared/render_view_with_fragments_store", ["angular2/src/core/di", "angular2/src/core/render/api", "angular2/src/web_workers/shared/api", "angular2/src/facade/collection"], true, function(require, exports, module) {
  1303. var global = System.global,
  1304. __define = global.define;
  1305. global.define = undefined;
  1306. var __extends = (this && this.__extends) || function(d, b) {
  1307. for (var p in b)
  1308. if (b.hasOwnProperty(p))
  1309. d[p] = b[p];
  1310. function __() {
  1311. this.constructor = d;
  1312. }
  1313. d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
  1314. };
  1315. var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
  1316. var c = arguments.length,
  1317. r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
  1318. d;
  1319. if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
  1320. r = Reflect.decorate(decorators, target, key, desc);
  1321. else
  1322. for (var i = decorators.length - 1; i >= 0; i--)
  1323. if (d = decorators[i])
  1324. r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  1325. return c > 3 && r && Object.defineProperty(target, key, r), r;
  1326. };
  1327. var __metadata = (this && this.__metadata) || function(k, v) {
  1328. if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
  1329. return Reflect.metadata(k, v);
  1330. };
  1331. var __param = (this && this.__param) || function(paramIndex, decorator) {
  1332. return function(target, key) {
  1333. decorator(target, key, paramIndex);
  1334. };
  1335. };
  1336. var di_1 = require("angular2/src/core/di");
  1337. var api_1 = require("angular2/src/core/render/api");
  1338. var api_2 = require("angular2/src/web_workers/shared/api");
  1339. var collection_1 = require("angular2/src/facade/collection");
  1340. var RenderViewWithFragmentsStore = (function() {
  1341. function RenderViewWithFragmentsStore(onWebWorker) {
  1342. this._nextIndex = 0;
  1343. this._onWebWorker = onWebWorker;
  1344. this._lookupByIndex = new Map();
  1345. this._lookupByView = new Map();
  1346. this._viewFragments = new Map();
  1347. }
  1348. RenderViewWithFragmentsStore.prototype.allocate = function(fragmentCount) {
  1349. var initialIndex = this._nextIndex;
  1350. var viewRef = new WebWorkerRenderViewRef(this._nextIndex++);
  1351. var fragmentRefs = collection_1.ListWrapper.createGrowableSize(fragmentCount);
  1352. for (var i = 0; i < fragmentCount; i++) {
  1353. fragmentRefs[i] = new WebWorkerRenderFragmentRef(this._nextIndex++);
  1354. }
  1355. var renderViewWithFragments = new api_1.RenderViewWithFragments(viewRef, fragmentRefs);
  1356. this.store(renderViewWithFragments, initialIndex);
  1357. return renderViewWithFragments;
  1358. };
  1359. RenderViewWithFragmentsStore.prototype.store = function(view, startIndex) {
  1360. var _this = this;
  1361. this._lookupByIndex.set(startIndex, view.viewRef);
  1362. this._lookupByView.set(view.viewRef, startIndex);
  1363. startIndex++;
  1364. view.fragmentRefs.forEach(function(ref) {
  1365. _this._lookupByIndex.set(startIndex, ref);
  1366. _this._lookupByView.set(ref, startIndex);
  1367. startIndex++;
  1368. });
  1369. this._viewFragments.set(view.viewRef, view.fragmentRefs);
  1370. };
  1371. RenderViewWithFragmentsStore.prototype.remove = function(view) {
  1372. var _this = this;
  1373. this._removeRef(view);
  1374. var fragments = this._viewFragments.get(view);
  1375. fragments.forEach(function(fragment) {
  1376. _this._removeRef(fragment);
  1377. });
  1378. this._viewFragments.delete(view);
  1379. };
  1380. RenderViewWithFragmentsStore.prototype._removeRef = function(ref) {
  1381. var index = this._lookupByView.get(ref);
  1382. this._lookupByView.delete(ref);
  1383. this._lookupByIndex.delete(index);
  1384. };
  1385. RenderViewWithFragmentsStore.prototype.serializeRenderViewRef = function(viewRef) {
  1386. return this._serializeRenderFragmentOrViewRef(viewRef);
  1387. };
  1388. RenderViewWithFragmentsStore.prototype.serializeRenderFragmentRef = function(fragmentRef) {
  1389. return this._serializeRenderFragmentOrViewRef(fragmentRef);
  1390. };
  1391. RenderViewWithFragmentsStore.prototype.deserializeRenderViewRef = function(ref) {
  1392. if (ref == null) {
  1393. return null;
  1394. }
  1395. return this._retrieve(ref);
  1396. };
  1397. RenderViewWithFragmentsStore.prototype.deserializeRenderFragmentRef = function(ref) {
  1398. if (ref == null) {
  1399. return null;
  1400. }
  1401. return this._retrieve(ref);
  1402. };
  1403. RenderViewWithFragmentsStore.prototype._retrieve = function(ref) {
  1404. if (ref == null) {
  1405. return null;
  1406. }
  1407. if (!this._lookupByIndex.has(ref)) {
  1408. return null;
  1409. }
  1410. return this._lookupByIndex.get(ref);
  1411. };
  1412. RenderViewWithFragmentsStore.prototype._serializeRenderFragmentOrViewRef = function(ref) {
  1413. if (ref == null) {
  1414. return null;
  1415. }
  1416. if (this._onWebWorker) {
  1417. return ref.serialize();
  1418. } else {
  1419. return this._lookupByView.get(ref);
  1420. }
  1421. };
  1422. RenderViewWithFragmentsStore.prototype.serializeViewWithFragments = function(view) {
  1423. var _this = this;
  1424. if (view == null) {
  1425. return null;
  1426. }
  1427. if (this._onWebWorker) {
  1428. return {
  1429. 'viewRef': view.viewRef.serialize(),
  1430. 'fragmentRefs': view.fragmentRefs.map(function(val) {
  1431. return val.serialize();
  1432. })
  1433. };
  1434. } else {
  1435. return {
  1436. 'viewRef': this._lookupByView.get(view.viewRef),
  1437. 'fragmentRefs': view.fragmentRefs.map(function(val) {
  1438. return _this._lookupByView.get(val);
  1439. })
  1440. };
  1441. }
  1442. };
  1443. RenderViewWithFragmentsStore.prototype.deserializeViewWithFragments = function(obj) {
  1444. var _this = this;
  1445. if (obj == null) {
  1446. return null;
  1447. }
  1448. var viewRef = this.deserializeRenderViewRef(obj['viewRef']);
  1449. var fragments = obj['fragmentRefs'].map(function(val) {
  1450. return _this.deserializeRenderFragmentRef(val);
  1451. });
  1452. return new api_1.RenderViewWithFragments(viewRef, fragments);
  1453. };
  1454. RenderViewWithFragmentsStore = __decorate([di_1.Injectable(), __param(0, di_1.Inject(api_2.ON_WEB_WORKER)), __metadata('design:paramtypes', [Object])], RenderViewWithFragmentsStore);
  1455. return RenderViewWithFragmentsStore;
  1456. })();
  1457. exports.RenderViewWithFragmentsStore = RenderViewWithFragmentsStore;
  1458. var WebWorkerRenderViewRef = (function(_super) {
  1459. __extends(WebWorkerRenderViewRef, _super);
  1460. function WebWorkerRenderViewRef(refNumber) {
  1461. _super.call(this);
  1462. this.refNumber = refNumber;
  1463. }
  1464. WebWorkerRenderViewRef.prototype.serialize = function() {
  1465. return this.refNumber;
  1466. };
  1467. WebWorkerRenderViewRef.deserialize = function(ref) {
  1468. return new WebWorkerRenderViewRef(ref);
  1469. };
  1470. return WebWorkerRenderViewRef;
  1471. })(api_1.RenderViewRef);
  1472. exports.WebWorkerRenderViewRef = WebWorkerRenderViewRef;
  1473. var WebWorkerRenderFragmentRef = (function(_super) {
  1474. __extends(WebWorkerRenderFragmentRef, _super);
  1475. function WebWorkerRenderFragmentRef(refNumber) {
  1476. _super.call(this);
  1477. this.refNumber = refNumber;
  1478. }
  1479. WebWorkerRenderFragmentRef.prototype.serialize = function() {
  1480. return this.refNumber;
  1481. };
  1482. WebWorkerRenderFragmentRef.deserialize = function(ref) {
  1483. return new WebWorkerRenderFragmentRef(ref);
  1484. };
  1485. return WebWorkerRenderFragmentRef;
  1486. })(api_1.RenderFragmentRef);
  1487. exports.WebWorkerRenderFragmentRef = WebWorkerRenderFragmentRef;
  1488. global.define = __define;
  1489. return module.exports;
  1490. });
  1491. System.register("angular2/src/testing/matchers", ["angular2/src/platform/dom/dom_adapter", "angular2/src/facade/lang", "angular2/src/facade/collection"], true, function(require, exports, module) {
  1492. var global = System.global,
  1493. __define = global.define;
  1494. global.define = undefined;
  1495. var dom_adapter_1 = require("angular2/src/platform/dom/dom_adapter");
  1496. var lang_1 = require("angular2/src/facade/lang");
  1497. var collection_1 = require("angular2/src/facade/collection");
  1498. var _global = (typeof window === 'undefined' ? lang_1.global : window);
  1499. exports.expect = _global.expect;
  1500. Map.prototype['jasmineToString'] = function() {
  1501. var m = this;
  1502. if (!m) {
  1503. return '' + m;
  1504. }
  1505. var res = [];
  1506. m.forEach(function(v, k) {
  1507. res.push(k + ":" + v);
  1508. });
  1509. return "{ " + res.join(',') + " }";
  1510. };
  1511. _global.beforeEach(function() {
  1512. jasmine.addMatchers({
  1513. toEqual: function(util, customEqualityTesters) {
  1514. return {compare: function(actual, expected) {
  1515. return {pass: util.equals(actual, expected, [compareMap])};
  1516. }};
  1517. function compareMap(actual, expected) {
  1518. if (actual instanceof Map) {
  1519. var pass = actual.size === expected.size;
  1520. if (pass) {
  1521. actual.forEach(function(v, k) {
  1522. pass = pass && util.equals(v, expected.get(k));
  1523. });
  1524. }
  1525. return pass;
  1526. } else {
  1527. return undefined;
  1528. }
  1529. }
  1530. },
  1531. toBePromise: function() {
  1532. return {compare: function(actual, expectedClass) {
  1533. var pass = typeof actual === 'object' && typeof actual.then === 'function';
  1534. return {
  1535. pass: pass,
  1536. get message() {
  1537. return 'Expected ' + actual + ' to be a promise';
  1538. }
  1539. };
  1540. }};
  1541. },
  1542. toBeAnInstanceOf: function() {
  1543. return {compare: function(actual, expectedClass) {
  1544. var pass = typeof actual === 'object' && actual instanceof expectedClass;
  1545. return {
  1546. pass: pass,
  1547. get message() {
  1548. return 'Expected ' + actual + ' to be an instance of ' + expectedClass;
  1549. }
  1550. };
  1551. }};
  1552. },
  1553. toHaveText: function() {
  1554. return {compare: function(actual, expectedText) {
  1555. var actualText = elementText(actual);
  1556. return {
  1557. pass: actualText == expectedText,
  1558. get message() {
  1559. return 'Expected ' + actualText + ' to be equal to ' + expectedText;
  1560. }
  1561. };
  1562. }};
  1563. },
  1564. toHaveCssClass: function() {
  1565. return {
  1566. compare: buildError(false),
  1567. negativeCompare: buildError(true)
  1568. };
  1569. function buildError(isNot) {
  1570. return function(actual, className) {
  1571. return {
  1572. pass: dom_adapter_1.DOM.hasClass(actual, className) == !isNot,
  1573. get message() {
  1574. return "Expected " + actual.outerHTML + " " + (isNot ? 'not ' : '') + "to contain the CSS class \"" + className + "\"";
  1575. }
  1576. };
  1577. };
  1578. }
  1579. },
  1580. toHaveCssStyle: function() {
  1581. return {compare: function(actual, styles) {
  1582. var allPassed;
  1583. if (lang_1.isString(styles)) {
  1584. allPassed = dom_adapter_1.DOM.hasStyle(actual, styles);
  1585. } else {
  1586. allPassed = !collection_1.StringMapWrapper.isEmpty(styles);
  1587. collection_1.StringMapWrapper.forEach(styles, function(style, prop) {
  1588. allPassed = allPassed && dom_adapter_1.DOM.hasStyle(actual, prop, style);
  1589. });
  1590. }
  1591. return {
  1592. pass: allPassed,
  1593. get message() {
  1594. var expectedValueStr = lang_1.isString(styles) ? styles : JSON.stringify(styles);
  1595. return "Expected " + actual.outerHTML + " " + (!allPassed ? ' ' : 'not ') + "to contain the\n CSS " + (lang_1.isString(styles) ? 'property' : 'styles') + " \"" + expectedValueStr + "\"";
  1596. }
  1597. };
  1598. }};
  1599. },
  1600. toContainError: function() {
  1601. return {compare: function(actual, expectedText) {
  1602. var errorMessage = actual.toString();
  1603. return {
  1604. pass: errorMessage.indexOf(expectedText) > -1,
  1605. get message() {
  1606. return 'Expected ' + errorMessage + ' to contain ' + expectedText;
  1607. }
  1608. };
  1609. }};
  1610. },
  1611. toThrowErrorWith: function() {
  1612. return {compare: function(actual, expectedText) {
  1613. try {
  1614. actual();
  1615. return {
  1616. pass: false,
  1617. get message() {
  1618. return "Was expected to throw, but did not throw";
  1619. }
  1620. };
  1621. } catch (e) {
  1622. var errorMessage = e.toString();
  1623. return {
  1624. pass: errorMessage.indexOf(expectedText) > -1,
  1625. get message() {
  1626. return 'Expected ' + errorMessage + ' to contain ' + expectedText;
  1627. }
  1628. };
  1629. }
  1630. }};
  1631. },
  1632. toImplement: function() {
  1633. return {compare: function(actualObject, expectedInterface) {
  1634. var objProps = Object.keys(actualObject.constructor.prototype);
  1635. var intProps = Object.keys(expectedInterface.prototype);
  1636. var missedMethods = [];
  1637. intProps.forEach(function(k) {
  1638. if (!actualObject.constructor.prototype[k])
  1639. missedMethods.push(k);
  1640. });
  1641. return {
  1642. pass: missedMethods.length == 0,
  1643. get message() {
  1644. return 'Expected ' + actualObject + ' to have the following methods: ' + missedMethods.join(", ");
  1645. }
  1646. };
  1647. }};
  1648. }
  1649. });
  1650. });
  1651. function elementText(n) {
  1652. var hasNodes = function(n) {
  1653. var children = dom_adapter_1.DOM.childNodes(n);
  1654. return children && children.length > 0;
  1655. };
  1656. if (n instanceof Array) {
  1657. return n.map(elementText).join("");
  1658. }
  1659. if (dom_adapter_1.DOM.isCommentNode(n)) {
  1660. return '';
  1661. }
  1662. if (dom_adapter_1.DOM.isElementNode(n) && dom_adapter_1.DOM.tagName(n) == 'CONTENT') {
  1663. return elementText(Array.prototype.slice.apply(dom_adapter_1.DOM.getDistributedNodes(n)));
  1664. }
  1665. if (dom_adapter_1.DOM.hasShadowRoot(n)) {
  1666. return elementText(dom_adapter_1.DOM.childNodesAsList(dom_adapter_1.DOM.getShadowRoot(n)));
  1667. }
  1668. if (hasNodes(n)) {
  1669. return elementText(dom_adapter_1.DOM.childNodesAsList(n));
  1670. }
  1671. return dom_adapter_1.DOM.getText(n);
  1672. }
  1673. global.define = __define;
  1674. return module.exports;
  1675. });
  1676. System.register("angular2/src/testing/fake_async", ["angular2/src/facade/lang", "angular2/src/facade/exceptions", "angular2/src/facade/collection"], true, function(require, exports, module) {
  1677. var global = System.global,
  1678. __define = global.define;
  1679. global.define = undefined;
  1680. var lang_1 = require("angular2/src/facade/lang");
  1681. var exceptions_1 = require("angular2/src/facade/exceptions");
  1682. var collection_1 = require("angular2/src/facade/collection");
  1683. var _scheduler;
  1684. var _microtasks = [];
  1685. var _pendingPeriodicTimers = [];
  1686. var _pendingTimers = [];
  1687. function fakeAsync(fn) {
  1688. if (lang_1.global.zone._inFakeAsyncZone) {
  1689. throw new Error('fakeAsync() calls can not be nested');
  1690. }
  1691. var fakeAsyncZone = lang_1.global.zone.fork({
  1692. setTimeout: _setTimeout,
  1693. clearTimeout: _clearTimeout,
  1694. setInterval: _setInterval,
  1695. clearInterval: _clearInterval,
  1696. scheduleMicrotask: _scheduleMicrotask,
  1697. _inFakeAsyncZone: true
  1698. });
  1699. return function() {
  1700. var args = [];
  1701. for (var _i = 0; _i < arguments.length; _i++) {
  1702. args[_i - 0] = arguments[_i];
  1703. }
  1704. _scheduler = new jasmine.DelayedFunctionScheduler();
  1705. clearPendingTimers();
  1706. var res = fakeAsyncZone.run(function() {
  1707. var res = fn.apply(void 0, args);
  1708. flushMicrotasks();
  1709. return res;
  1710. });
  1711. if (_pendingPeriodicTimers.length > 0) {
  1712. throw new exceptions_1.BaseException(_pendingPeriodicTimers.length + " periodic timer(s) still in the queue.");
  1713. }
  1714. if (_pendingTimers.length > 0) {
  1715. throw new exceptions_1.BaseException(_pendingTimers.length + " timer(s) still in the queue.");
  1716. }
  1717. _scheduler = null;
  1718. collection_1.ListWrapper.clear(_microtasks);
  1719. return res;
  1720. };
  1721. }
  1722. exports.fakeAsync = fakeAsync;
  1723. function clearPendingTimers() {
  1724. collection_1.ListWrapper.clear(_microtasks);
  1725. collection_1.ListWrapper.clear(_pendingPeriodicTimers);
  1726. collection_1.ListWrapper.clear(_pendingTimers);
  1727. }
  1728. exports.clearPendingTimers = clearPendingTimers;
  1729. function tick(millis) {
  1730. if (millis === void 0) {
  1731. millis = 0;
  1732. }
  1733. _assertInFakeAsyncZone();
  1734. flushMicrotasks();
  1735. _scheduler.tick(millis);
  1736. }
  1737. exports.tick = tick;
  1738. function flushMicrotasks() {
  1739. _assertInFakeAsyncZone();
  1740. while (_microtasks.length > 0) {
  1741. var microtask = collection_1.ListWrapper.removeAt(_microtasks, 0);
  1742. microtask();
  1743. }
  1744. }
  1745. exports.flushMicrotasks = flushMicrotasks;
  1746. function _setTimeout(fn, delay) {
  1747. var args = [];
  1748. for (var _i = 2; _i < arguments.length; _i++) {
  1749. args[_i - 2] = arguments[_i];
  1750. }
  1751. var cb = _fnAndFlush(fn);
  1752. var id = _scheduler.scheduleFunction(cb, delay, args);
  1753. _pendingTimers.push(id);
  1754. _scheduler.scheduleFunction(_dequeueTimer(id), delay);
  1755. return id;
  1756. }
  1757. function _clearTimeout(id) {
  1758. _dequeueTimer(id);
  1759. return _scheduler.removeFunctionWithId(id);
  1760. }
  1761. function _setInterval(fn, interval) {
  1762. var args = [];
  1763. for (var _i = 2; _i < arguments.length; _i++) {
  1764. args[_i - 2] = arguments[_i];
  1765. }
  1766. var cb = _fnAndFlush(fn);
  1767. var id = _scheduler.scheduleFunction(cb, interval, args, true);
  1768. _pendingPeriodicTimers.push(id);
  1769. return id;
  1770. }
  1771. function _clearInterval(id) {
  1772. collection_1.ListWrapper.remove(_pendingPeriodicTimers, id);
  1773. return _scheduler.removeFunctionWithId(id);
  1774. }
  1775. function _fnAndFlush(fn) {
  1776. return function() {
  1777. var args = [];
  1778. for (var _i = 0; _i < arguments.length; _i++) {
  1779. args[_i - 0] = arguments[_i];
  1780. }
  1781. fn.apply(lang_1.global, args);
  1782. flushMicrotasks();
  1783. };
  1784. }
  1785. function _scheduleMicrotask(microtask) {
  1786. _microtasks.push(microtask);
  1787. }
  1788. function _dequeueTimer(id) {
  1789. return function() {
  1790. collection_1.ListWrapper.remove(_pendingTimers, id);
  1791. };
  1792. }
  1793. function _assertInFakeAsyncZone() {
  1794. if (!lang_1.global.zone || !lang_1.global.zone._inFakeAsyncZone) {
  1795. throw new Error('The code should be running in the fakeAsync zone to call this function');
  1796. }
  1797. }
  1798. global.define = __define;
  1799. return module.exports;
  1800. });
  1801. System.register("angular2/src/compiler/xhr_mock", ["angular2/src/compiler/xhr", "angular2/src/facade/collection", "angular2/src/facade/lang", "angular2/src/facade/exceptions", "angular2/src/facade/async"], true, function(require, exports, module) {
  1802. var global = System.global,
  1803. __define = global.define;
  1804. global.define = undefined;
  1805. var __extends = (this && this.__extends) || function(d, b) {
  1806. for (var p in b)
  1807. if (b.hasOwnProperty(p))
  1808. d[p] = b[p];
  1809. function __() {
  1810. this.constructor = d;
  1811. }
  1812. d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
  1813. };
  1814. var xhr_1 = require("angular2/src/compiler/xhr");
  1815. var collection_1 = require("angular2/src/facade/collection");
  1816. var lang_1 = require("angular2/src/facade/lang");
  1817. var exceptions_1 = require("angular2/src/facade/exceptions");
  1818. var async_1 = require("angular2/src/facade/async");
  1819. var MockXHR = (function(_super) {
  1820. __extends(MockXHR, _super);
  1821. function MockXHR() {
  1822. _super.apply(this, arguments);
  1823. this._expectations = [];
  1824. this._definitions = new collection_1.Map();
  1825. this._requests = [];
  1826. }
  1827. MockXHR.prototype.get = function(url) {
  1828. var request = new _PendingRequest(url);
  1829. this._requests.push(request);
  1830. return request.getPromise();
  1831. };
  1832. MockXHR.prototype.expect = function(url, response) {
  1833. var expectation = new _Expectation(url, response);
  1834. this._expectations.push(expectation);
  1835. };
  1836. MockXHR.prototype.when = function(url, response) {
  1837. this._definitions.set(url, response);
  1838. };
  1839. MockXHR.prototype.flush = function() {
  1840. if (this._requests.length === 0) {
  1841. throw new exceptions_1.BaseException('No pending requests to flush');
  1842. }
  1843. do {
  1844. this._processRequest(this._requests.shift());
  1845. } while (this._requests.length > 0);
  1846. this.verifyNoOutstandingExpectations();
  1847. };
  1848. MockXHR.prototype.verifyNoOutstandingExpectations = function() {
  1849. if (this._expectations.length === 0)
  1850. return ;
  1851. var urls = [];
  1852. for (var i = 0; i < this._expectations.length; i++) {
  1853. var expectation = this._expectations[i];
  1854. urls.push(expectation.url);
  1855. }
  1856. throw new exceptions_1.BaseException("Unsatisfied requests: " + urls.join(', '));
  1857. };
  1858. MockXHR.prototype._processRequest = function(request) {
  1859. var url = request.url;
  1860. if (this._expectations.length > 0) {
  1861. var expectation = this._expectations[0];
  1862. if (expectation.url == url) {
  1863. collection_1.ListWrapper.remove(this._expectations, expectation);
  1864. request.complete(expectation.response);
  1865. return ;
  1866. }
  1867. }
  1868. if (this._definitions.has(url)) {
  1869. var response = this._definitions.get(url);
  1870. request.complete(lang_1.normalizeBlank(response));
  1871. return ;
  1872. }
  1873. throw new exceptions_1.BaseException("Unexpected request " + url);
  1874. };
  1875. return MockXHR;
  1876. })(xhr_1.XHR);
  1877. exports.MockXHR = MockXHR;
  1878. var _PendingRequest = (function() {
  1879. function _PendingRequest(url) {
  1880. this.url = url;
  1881. this.completer = async_1.PromiseWrapper.completer();
  1882. }
  1883. _PendingRequest.prototype.complete = function(response) {
  1884. if (lang_1.isBlank(response)) {
  1885. this.completer.reject("Failed to load " + this.url, null);
  1886. } else {
  1887. this.completer.resolve(response);
  1888. }
  1889. };
  1890. _PendingRequest.prototype.getPromise = function() {
  1891. return this.completer.promise;
  1892. };
  1893. return _PendingRequest;
  1894. })();
  1895. var _Expectation = (function() {
  1896. function _Expectation(url, response) {
  1897. this.url = url;
  1898. this.response = response;
  1899. }
  1900. return _Expectation;
  1901. })();
  1902. global.define = __define;
  1903. return module.exports;
  1904. });
  1905. System.register("angular2/src/mock/mock_application_ref", ["angular2/src/core/application_ref", "angular2/src/core/di"], true, function(require, exports, module) {
  1906. var global = System.global,
  1907. __define = global.define;
  1908. global.define = undefined;
  1909. var __extends = (this && this.__extends) || function(d, b) {
  1910. for (var p in b)
  1911. if (b.hasOwnProperty(p))
  1912. d[p] = b[p];
  1913. function __() {
  1914. this.constructor = d;
  1915. }
  1916. d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
  1917. };
  1918. var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
  1919. var c = arguments.length,
  1920. r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
  1921. d;
  1922. if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
  1923. r = Reflect.decorate(decorators, target, key, desc);
  1924. else
  1925. for (var i = decorators.length - 1; i >= 0; i--)
  1926. if (d = decorators[i])
  1927. r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  1928. return c > 3 && r && Object.defineProperty(target, key, r), r;
  1929. };
  1930. var __metadata = (this && this.__metadata) || function(k, v) {
  1931. if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
  1932. return Reflect.metadata(k, v);
  1933. };
  1934. var application_ref_1 = require("angular2/src/core/application_ref");
  1935. var di_1 = require("angular2/src/core/di");
  1936. var MockApplicationRef = (function(_super) {
  1937. __extends(MockApplicationRef, _super);
  1938. function MockApplicationRef() {
  1939. _super.apply(this, arguments);
  1940. }
  1941. MockApplicationRef.prototype.registerBootstrapListener = function(listener) {};
  1942. MockApplicationRef.prototype.registerDisposeListener = function(dispose) {};
  1943. MockApplicationRef.prototype.bootstrap = function(componentType, bindings) {
  1944. return null;
  1945. };
  1946. Object.defineProperty(MockApplicationRef.prototype, "injector", {
  1947. get: function() {
  1948. return null;
  1949. },
  1950. enumerable: true,
  1951. configurable: true
  1952. });
  1953. ;
  1954. Object.defineProperty(MockApplicationRef.prototype, "zone", {
  1955. get: function() {
  1956. return null;
  1957. },
  1958. enumerable: true,
  1959. configurable: true
  1960. });
  1961. ;
  1962. MockApplicationRef.prototype.dispose = function() {};
  1963. MockApplicationRef.prototype.tick = function() {};
  1964. Object.defineProperty(MockApplicationRef.prototype, "componentTypes", {
  1965. get: function() {
  1966. return null;
  1967. },
  1968. enumerable: true,
  1969. configurable: true
  1970. });
  1971. ;
  1972. MockApplicationRef = __decorate([di_1.Injectable(), __metadata('design:paramtypes', [])], MockApplicationRef);
  1973. return MockApplicationRef;
  1974. })(application_ref_1.ApplicationRef);
  1975. exports.MockApplicationRef = MockApplicationRef;
  1976. global.define = __define;
  1977. return module.exports;
  1978. });
  1979. System.register("angular2/src/testing/test_component_builder", ["angular2/core", "angular2/src/facade/lang", "angular2/src/facade/collection", "angular2/src/core/linker/view_ref", "angular2/src/testing/utils", "angular2/src/platform/dom/dom_tokens", "angular2/src/platform/dom/dom_adapter", "angular2/src/core/debug/debug_element"], true, function(require, exports, module) {
  1980. var global = System.global,
  1981. __define = global.define;
  1982. global.define = undefined;
  1983. var __extends = (this && this.__extends) || function(d, b) {
  1984. for (var p in b)
  1985. if (b.hasOwnProperty(p))
  1986. d[p] = b[p];
  1987. function __() {
  1988. this.constructor = d;
  1989. }
  1990. d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
  1991. };
  1992. var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
  1993. var c = arguments.length,
  1994. r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
  1995. d;
  1996. if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
  1997. r = Reflect.decorate(decorators, target, key, desc);
  1998. else
  1999. for (var i = decorators.length - 1; i >= 0; i--)
  2000. if (d = decorators[i])
  2001. r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  2002. return c > 3 && r && Object.defineProperty(target, key, r), r;
  2003. };
  2004. var __metadata = (this && this.__metadata) || function(k, v) {
  2005. if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
  2006. return Reflect.metadata(k, v);
  2007. };
  2008. var core_1 = require("angular2/core");
  2009. var lang_1 = require("angular2/src/facade/lang");
  2010. var collection_1 = require("angular2/src/facade/collection");
  2011. var view_ref_1 = require("angular2/src/core/linker/view_ref");
  2012. var utils_1 = require("angular2/src/testing/utils");
  2013. var dom_tokens_1 = require("angular2/src/platform/dom/dom_tokens");
  2014. var dom_adapter_1 = require("angular2/src/platform/dom/dom_adapter");
  2015. var debug_element_1 = require("angular2/src/core/debug/debug_element");
  2016. var ComponentFixture = (function() {
  2017. function ComponentFixture() {}
  2018. return ComponentFixture;
  2019. })();
  2020. exports.ComponentFixture = ComponentFixture;
  2021. var ComponentFixture_ = (function(_super) {
  2022. __extends(ComponentFixture_, _super);
  2023. function ComponentFixture_(componentRef) {
  2024. _super.call(this);
  2025. this.debugElement = new debug_element_1.DebugElement_(view_ref_1.internalView(componentRef.hostView), 0);
  2026. this.componentInstance = this.debugElement.componentInstance;
  2027. this.nativeElement = this.debugElement.nativeElement;
  2028. this._componentParentView = view_ref_1.internalView(componentRef.hostView);
  2029. this._componentRef = componentRef;
  2030. }
  2031. ComponentFixture_.prototype.detectChanges = function() {
  2032. this._componentParentView.changeDetector.detectChanges();
  2033. this._componentParentView.changeDetector.checkNoChanges();
  2034. };
  2035. ComponentFixture_.prototype.destroy = function() {
  2036. this._componentRef.dispose();
  2037. };
  2038. return ComponentFixture_;
  2039. })(ComponentFixture);
  2040. exports.ComponentFixture_ = ComponentFixture_;
  2041. var _nextRootElementId = 0;
  2042. var TestComponentBuilder = (function() {
  2043. function TestComponentBuilder(_injector) {
  2044. this._injector = _injector;
  2045. this._bindingsOverrides = new Map();
  2046. this._directiveOverrides = new Map();
  2047. this._templateOverrides = new Map();
  2048. this._viewBindingsOverrides = new Map();
  2049. this._viewOverrides = new Map();
  2050. }
  2051. TestComponentBuilder.prototype._clone = function() {
  2052. var clone = new TestComponentBuilder(this._injector);
  2053. clone._viewOverrides = collection_1.MapWrapper.clone(this._viewOverrides);
  2054. clone._directiveOverrides = collection_1.MapWrapper.clone(this._directiveOverrides);
  2055. clone._templateOverrides = collection_1.MapWrapper.clone(this._templateOverrides);
  2056. return clone;
  2057. };
  2058. TestComponentBuilder.prototype.overrideTemplate = function(componentType, template) {
  2059. var clone = this._clone();
  2060. clone._templateOverrides.set(componentType, template);
  2061. return clone;
  2062. };
  2063. TestComponentBuilder.prototype.overrideView = function(componentType, view) {
  2064. var clone = this._clone();
  2065. clone._viewOverrides.set(componentType, view);
  2066. return clone;
  2067. };
  2068. TestComponentBuilder.prototype.overrideDirective = function(componentType, from, to) {
  2069. var clone = this._clone();
  2070. var overridesForComponent = clone._directiveOverrides.get(componentType);
  2071. if (!lang_1.isPresent(overridesForComponent)) {
  2072. clone._directiveOverrides.set(componentType, new Map());
  2073. overridesForComponent = clone._directiveOverrides.get(componentType);
  2074. }
  2075. overridesForComponent.set(from, to);
  2076. return clone;
  2077. };
  2078. TestComponentBuilder.prototype.overrideProviders = function(type, providers) {
  2079. var clone = this._clone();
  2080. clone._bindingsOverrides.set(type, providers);
  2081. return clone;
  2082. };
  2083. TestComponentBuilder.prototype.overrideBindings = function(type, providers) {
  2084. return this.overrideProviders(type, providers);
  2085. };
  2086. TestComponentBuilder.prototype.overrideViewProviders = function(type, providers) {
  2087. var clone = this._clone();
  2088. clone._viewBindingsOverrides.set(type, providers);
  2089. return clone;
  2090. };
  2091. TestComponentBuilder.prototype.overrideViewBindings = function(type, providers) {
  2092. return this.overrideViewProviders(type, providers);
  2093. };
  2094. TestComponentBuilder.prototype.createAsync = function(rootComponentType) {
  2095. var mockDirectiveResolver = this._injector.get(core_1.DirectiveResolver);
  2096. var mockViewResolver = this._injector.get(core_1.ViewResolver);
  2097. this._viewOverrides.forEach(function(view, type) {
  2098. return mockViewResolver.setView(type, view);
  2099. });
  2100. this._templateOverrides.forEach(function(template, type) {
  2101. return mockViewResolver.setInlineTemplate(type, template);
  2102. });
  2103. this._directiveOverrides.forEach(function(overrides, component) {
  2104. overrides.forEach(function(to, from) {
  2105. mockViewResolver.overrideViewDirective(component, from, to);
  2106. });
  2107. });
  2108. this._bindingsOverrides.forEach(function(bindings, type) {
  2109. return mockDirectiveResolver.setBindingsOverride(type, bindings);
  2110. });
  2111. this._viewBindingsOverrides.forEach(function(bindings, type) {
  2112. return mockDirectiveResolver.setViewBindingsOverride(type, bindings);
  2113. });
  2114. var rootElId = "root" + _nextRootElementId++;
  2115. var rootEl = utils_1.el("<div id=\"" + rootElId + "\"></div>");
  2116. var doc = this._injector.get(dom_tokens_1.DOCUMENT);
  2117. var oldRoots = dom_adapter_1.DOM.querySelectorAll(doc, '[id^=root]');
  2118. for (var i = 0; i < oldRoots.length; i++) {
  2119. dom_adapter_1.DOM.remove(oldRoots[i]);
  2120. }
  2121. dom_adapter_1.DOM.appendChild(doc.body, rootEl);
  2122. return this._injector.get(core_1.DynamicComponentLoader).loadAsRoot(rootComponentType, "#" + rootElId, this._injector).then(function(componentRef) {
  2123. return new ComponentFixture_(componentRef);
  2124. });
  2125. };
  2126. TestComponentBuilder = __decorate([core_1.Injectable(), __metadata('design:paramtypes', [core_1.Injector])], TestComponentBuilder);
  2127. return TestComponentBuilder;
  2128. })();
  2129. exports.TestComponentBuilder = TestComponentBuilder;
  2130. global.define = __define;
  2131. return module.exports;
  2132. });
  2133. System.register("angular2/src/web_workers/shared/serializer", ["angular2/src/facade/lang", "angular2/src/facade/exceptions", "angular2/src/facade/collection", "angular2/src/core/render/api", "angular2/src/web_workers/shared/api", "angular2/src/core/di", "angular2/src/web_workers/shared/render_proto_view_ref_store", "angular2/src/web_workers/shared/render_view_with_fragments_store", "angular2/src/core/metadata/view"], true, function(require, exports, module) {
  2134. var global = System.global,
  2135. __define = global.define;
  2136. global.define = undefined;
  2137. var __decorate = (this && this.__decorate) || function(decorators, target, key, desc) {
  2138. var c = arguments.length,
  2139. r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,
  2140. d;
  2141. if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
  2142. r = Reflect.decorate(decorators, target, key, desc);
  2143. else
  2144. for (var i = decorators.length - 1; i >= 0; i--)
  2145. if (d = decorators[i])
  2146. r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  2147. return c > 3 && r && Object.defineProperty(target, key, r), r;
  2148. };
  2149. var __metadata = (this && this.__metadata) || function(k, v) {
  2150. if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
  2151. return Reflect.metadata(k, v);
  2152. };
  2153. var lang_1 = require("angular2/src/facade/lang");
  2154. var exceptions_1 = require("angular2/src/facade/exceptions");
  2155. var collection_1 = require("angular2/src/facade/collection");
  2156. var api_1 = require("angular2/src/core/render/api");
  2157. var api_2 = require("angular2/src/web_workers/shared/api");
  2158. var di_1 = require("angular2/src/core/di");
  2159. var render_proto_view_ref_store_1 = require("angular2/src/web_workers/shared/render_proto_view_ref_store");
  2160. var render_view_with_fragments_store_1 = require("angular2/src/web_workers/shared/render_view_with_fragments_store");
  2161. var view_1 = require("angular2/src/core/metadata/view");
  2162. exports.PRIMITIVE = String;
  2163. var Serializer = (function() {
  2164. function Serializer(_protoViewStore, _renderViewStore) {
  2165. this._protoViewStore = _protoViewStore;
  2166. this._renderViewStore = _renderViewStore;
  2167. }
  2168. Serializer.prototype.serialize = function(obj, type) {
  2169. var _this = this;
  2170. if (!lang_1.isPresent(obj)) {
  2171. return null;
  2172. }
  2173. if (lang_1.isArray(obj)) {
  2174. return obj.map(function(v) {
  2175. return _this.serialize(v, type);
  2176. });
  2177. }
  2178. if (type == exports.PRIMITIVE) {
  2179. return obj;
  2180. }
  2181. if (type == api_1.RenderProtoViewRef) {
  2182. return this._protoViewStore.serialize(obj);
  2183. } else if (type == api_1.RenderViewRef) {
  2184. return this._renderViewStore.serializeRenderViewRef(obj);
  2185. } else if (type == api_1.RenderFragmentRef) {
  2186. return this._renderViewStore.serializeRenderFragmentRef(obj);
  2187. } else if (type == api_2.WebWorkerElementRef) {
  2188. return this._serializeWorkerElementRef(obj);
  2189. } else if (type == api_2.WebWorkerTemplateCmd) {
  2190. return serializeTemplateCmd(obj);
  2191. } else if (type === api_1.RenderComponentTemplate) {
  2192. return this._serializeRenderTemplate(obj);
  2193. } else if (type === view_1.ViewEncapsulation) {
  2194. return lang_1.serializeEnum(obj);
  2195. } else {
  2196. throw new exceptions_1.BaseException("No serializer for " + type.toString());
  2197. }
  2198. };
  2199. Serializer.prototype.deserialize = function(map, type, data) {
  2200. var _this = this;
  2201. if (!lang_1.isPresent(map)) {
  2202. return null;
  2203. }
  2204. if (lang_1.isArray(map)) {
  2205. var obj = [];
  2206. map.forEach(function(val) {
  2207. return obj.push(_this.deserialize(val, type, data));
  2208. });
  2209. return obj;
  2210. }
  2211. if (type == exports.PRIMITIVE) {
  2212. return map;
  2213. }
  2214. if (type == api_1.RenderProtoViewRef) {
  2215. return this._protoViewStore.deserialize(map);
  2216. } else if (type == api_1.RenderViewRef) {
  2217. return this._renderViewStore.deserializeRenderViewRef(map);
  2218. } else if (type == api_1.RenderFragmentRef) {
  2219. return this._renderViewStore.deserializeRenderFragmentRef(map);
  2220. } else if (type == api_2.WebWorkerElementRef) {
  2221. return this._deserializeWorkerElementRef(map);
  2222. } else if (type == api_2.WebWorkerTemplateCmd) {
  2223. return deserializeTemplateCmd(map);
  2224. } else if (type === api_1.RenderComponentTemplate) {
  2225. return this._deserializeRenderTemplate(map);
  2226. } else if (type === view_1.ViewEncapsulation) {
  2227. return view_1.VIEW_ENCAPSULATION_VALUES[map];
  2228. } else {
  2229. throw new exceptions_1.BaseException("No deserializer for " + type.toString());
  2230. }
  2231. };
  2232. Serializer.prototype.mapToObject = function(map, type) {
  2233. var _this = this;
  2234. var object = {};
  2235. var serialize = lang_1.isPresent(type);
  2236. map.forEach(function(value, key) {
  2237. if (serialize) {
  2238. object[key] = _this.serialize(value, type);
  2239. } else {
  2240. object[key] = value;
  2241. }
  2242. });
  2243. return object;
  2244. };
  2245. Serializer.prototype.objectToMap = function(obj, type, data) {
  2246. var _this = this;
  2247. if (lang_1.isPresent(type)) {
  2248. var map = new collection_1.Map();
  2249. collection_1.StringMapWrapper.forEach(obj, function(val, key) {
  2250. map.set(key, _this.deserialize(val, type, data));
  2251. });
  2252. return map;
  2253. } else {
  2254. return collection_1.MapWrapper.createFromStringMap(obj);
  2255. }
  2256. };
  2257. Serializer.prototype.allocateRenderViews = function(fragmentCount) {
  2258. this._renderViewStore.allocate(fragmentCount);
  2259. };
  2260. Serializer.prototype._serializeWorkerElementRef = function(elementRef) {
  2261. return {
  2262. 'renderView': this.serialize(elementRef.renderView, api_1.RenderViewRef),
  2263. 'boundElementIndex': elementRef.boundElementIndex
  2264. };
  2265. };
  2266. Serializer.prototype._deserializeWorkerElementRef = function(map) {
  2267. return new api_2.WebWorkerElementRef(this.deserialize(map['renderView'], api_1.RenderViewRef), map['boundElementIndex']);
  2268. };
  2269. Serializer.prototype._serializeRenderTemplate = function(obj) {
  2270. return {
  2271. 'id': obj.id,
  2272. 'shortId': obj.shortId,
  2273. 'encapsulation': this.serialize(obj.encapsulation, view_1.ViewEncapsulation),
  2274. 'commands': this.serialize(obj.commands, api_2.WebWorkerTemplateCmd),
  2275. 'styles': this.serialize(obj.styles, exports.PRIMITIVE)
  2276. };
  2277. };
  2278. Serializer.prototype._deserializeRenderTemplate = function(map) {
  2279. return new api_1.RenderComponentTemplate(map['id'], map['shortId'], this.deserialize(map['encapsulation'], view_1.ViewEncapsulation), this.deserialize(map['commands'], api_2.WebWorkerTemplateCmd), this.deserialize(map['styles'], exports.PRIMITIVE));
  2280. };
  2281. Serializer = __decorate([di_1.Injectable(), __metadata('design:paramtypes', [render_proto_view_ref_store_1.RenderProtoViewRefStore, render_view_with_fragments_store_1.RenderViewWithFragmentsStore])], Serializer);
  2282. return Serializer;
  2283. })();
  2284. exports.Serializer = Serializer;
  2285. function serializeTemplateCmd(cmd) {
  2286. return cmd.visit(RENDER_TEMPLATE_CMD_SERIALIZER, null);
  2287. }
  2288. function deserializeTemplateCmd(data) {
  2289. return RENDER_TEMPLATE_CMD_DESERIALIZERS[data['deserializerIndex']](data);
  2290. }
  2291. var RenderTemplateCmdSerializer = (function() {
  2292. function RenderTemplateCmdSerializer() {}
  2293. RenderTemplateCmdSerializer.prototype.visitText = function(cmd, context) {
  2294. return {
  2295. 'deserializerIndex': 0,
  2296. 'isBound': cmd.isBound,
  2297. 'ngContentIndex': cmd.ngContentIndex,
  2298. 'value': cmd.value
  2299. };
  2300. };
  2301. RenderTemplateCmdSerializer.prototype.visitNgContent = function(cmd, context) {
  2302. return {
  2303. 'deserializerIndex': 1,
  2304. 'index': cmd.index,
  2305. 'ngContentIndex': cmd.ngContentIndex
  2306. };
  2307. };
  2308. RenderTemplateCmdSerializer.prototype.visitBeginElement = function(cmd, context) {
  2309. return {
  2310. 'deserializerIndex': 2,
  2311. 'isBound': cmd.isBound,
  2312. 'ngContentIndex': cmd.ngContentIndex,
  2313. 'name': cmd.name,
  2314. 'attrNameAndValues': cmd.attrNameAndValues,
  2315. 'eventTargetAndNames': cmd.eventTargetAndNames
  2316. };
  2317. };
  2318. RenderTemplateCmdSerializer.prototype.visitEndElement = function(context) {
  2319. return {'deserializerIndex': 3};
  2320. };
  2321. RenderTemplateCmdSerializer.prototype.visitBeginComponent = function(cmd, context) {
  2322. return {
  2323. 'deserializerIndex': 4,
  2324. 'isBound': cmd.isBound,
  2325. 'ngContentIndex': cmd.ngContentIndex,
  2326. 'name': cmd.name,
  2327. 'attrNameAndValues': cmd.attrNameAndValues,
  2328. 'eventTargetAndNames': cmd.eventTargetAndNames,
  2329. 'templateId': cmd.templateId
  2330. };
  2331. };
  2332. RenderTemplateCmdSerializer.prototype.visitEndComponent = function(context) {
  2333. return {'deserializerIndex': 5};
  2334. };
  2335. RenderTemplateCmdSerializer.prototype.visitEmbeddedTemplate = function(cmd, context) {
  2336. var _this = this;
  2337. var children = cmd.children.map(function(child) {
  2338. return child.visit(_this, null);
  2339. });
  2340. return {
  2341. 'deserializerIndex': 6,
  2342. 'isBound': cmd.isBound,
  2343. 'ngContentIndex': cmd.ngContentIndex,
  2344. 'name': cmd.name,
  2345. 'attrNameAndValues': cmd.attrNameAndValues,
  2346. 'eventTargetAndNames': cmd.eventTargetAndNames,
  2347. 'isMerged': cmd.isMerged,
  2348. 'children': children
  2349. };
  2350. };
  2351. return RenderTemplateCmdSerializer;
  2352. })();
  2353. var RENDER_TEMPLATE_CMD_SERIALIZER = new RenderTemplateCmdSerializer();
  2354. var RENDER_TEMPLATE_CMD_DESERIALIZERS = [function(data) {
  2355. return new api_2.WebWorkerTextCmd(data['isBound'], data['ngContentIndex'], data['value']);
  2356. }, function(data) {
  2357. return new api_2.WebWorkerNgContentCmd(data['index'], data['ngContentIndex']);
  2358. }, function(data) {
  2359. return new api_2.WebWorkerBeginElementCmd(data['isBound'], data['ngContentIndex'], data['name'], data['attrNameAndValues'], data['eventTargetAndNames']);
  2360. }, function(data) {
  2361. return new api_2.WebWorkerEndElementCmd();
  2362. }, function(data) {
  2363. return new api_2.WebWorkerBeginComponentCmd(data['isBound'], data['ngContentIndex'], data['name'], data['attrNameAndValues'], data['eventTargetAndNames'], data['templateId']);
  2364. }, function(data) {
  2365. return new api_2.WebWorkerEndComponentCmd();
  2366. }, function(data) {
  2367. return new api_2.WebWorkerEmbeddedTemplateCmd(data['isBound'], data['ngContentIndex'], data['name'], data['attrNameAndValues'], data['eventTargetAndNames'], data['isMerged'], data['children'].map(function(childData) {
  2368. return deserializeTemplateCmd(childData);
  2369. }));
  2370. }];
  2371. global.define = __define;
  2372. return module.exports;
  2373. });
  2374. System.register("angular2/src/testing/test_injector", ["angular2/core", "angular2/src/animate/animation_builder", "angular2/src/mock/animation_builder_mock", "angular2/src/core/linker/proto_view_factory", "angular2/src/core/reflection/reflection", "angular2/src/core/change_detection/change_detection", "angular2/src/facade/exceptions", "angular2/src/core/linker/pipe_resolver", "angular2/src/compiler/xhr", "angular2/src/platform/dom/dom_adapter", "angular2/src/mock/directive_resolver_mock", "angular2/src/mock/view_resolver_mock", "angular2/src/mock/mock_location_strategy", "angular2/src/router/location_strategy", "angular2/src/mock/ng_zone_mock", "angular2/src/testing/test_component_builder", "angular2/platform/common_dom", "angular2/src/facade/collection", "angular2/src/facade/lang", "angular2/src/core/linker/view_pool", "angular2/src/core/linker/view_manager_utils", "angular2/src/platform/dom/dom_tokens", "angular2/src/platform/dom/dom_renderer", "angular2/src/platform/dom/shared_styles_host", "angular2/src/platform/dom/shared_styles_host", "angular2/src/platform/dom/events/dom_events", "angular2/src/web_workers/shared/serializer", "angular2/src/testing/utils", "angular2/src/compiler/compiler", "angular2/src/platform/dom/dom_renderer", "angular2/src/core/linker/dynamic_component_loader", "angular2/src/core/linker/view_manager"], true, function(require, exports, module) {
  2375. var global = System.global,
  2376. __define = global.define;
  2377. global.define = undefined;
  2378. var core_1 = require("angular2/core");
  2379. var animation_builder_1 = require("angular2/src/animate/animation_builder");
  2380. var animation_builder_mock_1 = require("angular2/src/mock/animation_builder_mock");
  2381. var proto_view_factory_1 = require("angular2/src/core/linker/proto_view_factory");
  2382. var reflection_1 = require("angular2/src/core/reflection/reflection");
  2383. var change_detection_1 = require("angular2/src/core/change_detection/change_detection");
  2384. var exceptions_1 = require("angular2/src/facade/exceptions");
  2385. var pipe_resolver_1 = require("angular2/src/core/linker/pipe_resolver");
  2386. var xhr_1 = require("angular2/src/compiler/xhr");
  2387. var dom_adapter_1 = require("angular2/src/platform/dom/dom_adapter");
  2388. var directive_resolver_mock_1 = require("angular2/src/mock/directive_resolver_mock");
  2389. var view_resolver_mock_1 = require("angular2/src/mock/view_resolver_mock");
  2390. var mock_location_strategy_1 = require("angular2/src/mock/mock_location_strategy");
  2391. var location_strategy_1 = require("angular2/src/router/location_strategy");
  2392. var ng_zone_mock_1 = require("angular2/src/mock/ng_zone_mock");
  2393. var test_component_builder_1 = require("angular2/src/testing/test_component_builder");
  2394. var common_dom_1 = require("angular2/platform/common_dom");
  2395. var collection_1 = require("angular2/src/facade/collection");
  2396. var lang_1 = require("angular2/src/facade/lang");
  2397. var view_pool_1 = require("angular2/src/core/linker/view_pool");
  2398. var view_manager_utils_1 = require("angular2/src/core/linker/view_manager_utils");
  2399. var dom_tokens_1 = require("angular2/src/platform/dom/dom_tokens");
  2400. var dom_renderer_1 = require("angular2/src/platform/dom/dom_renderer");
  2401. var shared_styles_host_1 = require("angular2/src/platform/dom/shared_styles_host");
  2402. var shared_styles_host_2 = require("angular2/src/platform/dom/shared_styles_host");
  2403. var dom_events_1 = require("angular2/src/platform/dom/events/dom_events");
  2404. var serializer_1 = require("angular2/src/web_workers/shared/serializer");
  2405. var utils_1 = require("angular2/src/testing/utils");
  2406. var compiler_1 = require("angular2/src/compiler/compiler");
  2407. var dom_renderer_2 = require("angular2/src/platform/dom/dom_renderer");
  2408. var dynamic_component_loader_1 = require("angular2/src/core/linker/dynamic_component_loader");
  2409. var view_manager_1 = require("angular2/src/core/linker/view_manager");
  2410. function _getRootProviders() {
  2411. return [core_1.provide(reflection_1.Reflector, {useValue: reflection_1.reflector})];
  2412. }
  2413. function _getAppBindings() {
  2414. var appDoc;
  2415. try {
  2416. appDoc = dom_adapter_1.DOM.defaultDoc();
  2417. } catch (e) {
  2418. appDoc = null;
  2419. }
  2420. return [core_1.APPLICATION_COMMON_PROVIDERS, core_1.provide(change_detection_1.ChangeDetectorGenConfig, {useValue: new change_detection_1.ChangeDetectorGenConfig(true, false, true)}), core_1.provide(dom_tokens_1.DOCUMENT, {useValue: appDoc}), core_1.provide(dom_renderer_1.DomRenderer, {useClass: dom_renderer_2.DomRenderer_}), core_1.provide(core_1.Renderer, {useExisting: dom_renderer_1.DomRenderer}), core_1.provide(core_1.APP_ID, {useValue: 'a'}), shared_styles_host_1.DomSharedStylesHost, core_1.provide(shared_styles_host_2.SharedStylesHost, {useExisting: shared_styles_host_1.DomSharedStylesHost}), view_pool_1.AppViewPool, core_1.provide(core_1.AppViewManager, {useClass: view_manager_1.AppViewManager_}), view_manager_utils_1.AppViewManagerUtils, serializer_1.Serializer, common_dom_1.ELEMENT_PROBE_PROVIDERS, core_1.provide(view_pool_1.APP_VIEW_POOL_CAPACITY, {useValue: 500}), proto_view_factory_1.ProtoViewFactory, core_1.provide(core_1.DirectiveResolver, {useClass: directive_resolver_mock_1.MockDirectiveResolver}), core_1.provide(core_1.ViewResolver, {useClass: view_resolver_mock_1.MockViewResolver}), core_1.provide(change_detection_1.IterableDiffers, {useValue: change_detection_1.defaultIterableDiffers}), core_1.provide(change_detection_1.KeyValueDiffers, {useValue: change_detection_1.defaultKeyValueDiffers}), utils_1.Log, core_1.provide(core_1.DynamicComponentLoader, {useClass: dynamic_component_loader_1.DynamicComponentLoader_}), pipe_resolver_1.PipeResolver, core_1.provide(exceptions_1.ExceptionHandler, {useValue: new exceptions_1.ExceptionHandler(dom_adapter_1.DOM)}), core_1.provide(location_strategy_1.LocationStrategy, {useClass: mock_location_strategy_1.MockLocationStrategy}), core_1.provide(xhr_1.XHR, {useClass: dom_adapter_1.DOM.getXHR()}), test_component_builder_1.TestComponentBuilder, core_1.provide(core_1.NgZone, {useClass: ng_zone_mock_1.MockNgZone}), core_1.provide(animation_builder_1.AnimationBuilder, {useClass: animation_builder_mock_1.MockAnimationBuilder}), common_dom_1.EventManager, new core_1.Provider(common_dom_1.EVENT_MANAGER_PLUGINS, {
  2421. useClass: dom_events_1.DomEventsPlugin,
  2422. multi: true
  2423. })];
  2424. }
  2425. function _runtimeCompilerBindings() {
  2426. return [core_1.provide(xhr_1.XHR, {useClass: dom_adapter_1.DOM.getXHR()}), compiler_1.COMPILER_PROVIDERS];
  2427. }
  2428. function createTestInjector(providers) {
  2429. var rootInjector = core_1.Injector.resolveAndCreate(_getRootProviders());
  2430. return rootInjector.resolveAndCreateChild(collection_1.ListWrapper.concat(_getAppBindings(), providers));
  2431. }
  2432. exports.createTestInjector = createTestInjector;
  2433. function createTestInjectorWithRuntimeCompiler(providers) {
  2434. return createTestInjector(collection_1.ListWrapper.concat(_runtimeCompilerBindings(), providers));
  2435. }
  2436. exports.createTestInjectorWithRuntimeCompiler = createTestInjectorWithRuntimeCompiler;
  2437. function inject(tokens, fn) {
  2438. return new FunctionWithParamTokens(tokens, fn, false);
  2439. }
  2440. exports.inject = inject;
  2441. function injectAsync(tokens, fn) {
  2442. return new FunctionWithParamTokens(tokens, fn, true);
  2443. }
  2444. exports.injectAsync = injectAsync;
  2445. var FunctionWithParamTokens = (function() {
  2446. function FunctionWithParamTokens(_tokens, _fn, isAsync) {
  2447. this._tokens = _tokens;
  2448. this._fn = _fn;
  2449. this.isAsync = isAsync;
  2450. }
  2451. FunctionWithParamTokens.prototype.execute = function(injector) {
  2452. var params = this._tokens.map(function(t) {
  2453. return injector.get(t);
  2454. });
  2455. return lang_1.FunctionWrapper.apply(this._fn, params);
  2456. };
  2457. FunctionWithParamTokens.prototype.hasToken = function(token) {
  2458. return this._tokens.indexOf(token) > -1;
  2459. };
  2460. return FunctionWithParamTokens;
  2461. })();
  2462. exports.FunctionWithParamTokens = FunctionWithParamTokens;
  2463. global.define = __define;
  2464. return module.exports;
  2465. });
  2466. System.register("angular2/src/testing/testing", ["angular2/src/facade/lang", "angular2/src/facade/collection", "angular2/src/testing/test_injector", "angular2/src/testing/test_injector", "angular2/src/testing/matchers"], true, function(require, exports, module) {
  2467. var global = System.global,
  2468. __define = global.define;
  2469. global.define = undefined;
  2470. var lang_1 = require("angular2/src/facade/lang");
  2471. var collection_1 = require("angular2/src/facade/collection");
  2472. var test_injector_1 = require("angular2/src/testing/test_injector");
  2473. var test_injector_2 = require("angular2/src/testing/test_injector");
  2474. exports.inject = test_injector_2.inject;
  2475. exports.injectAsync = test_injector_2.injectAsync;
  2476. var matchers_1 = require("angular2/src/testing/matchers");
  2477. exports.expect = matchers_1.expect;
  2478. var _global = (typeof window === 'undefined' ? lang_1.global : window);
  2479. exports.afterEach = _global.afterEach;
  2480. exports.describe = _global.describe;
  2481. exports.ddescribe = _global.fdescribe;
  2482. exports.fdescribe = _global.fdescribe;
  2483. exports.xdescribe = _global.xdescribe;
  2484. var jsmBeforeEach = _global.beforeEach;
  2485. var jsmIt = _global.it;
  2486. var jsmIIt = _global.fit;
  2487. var jsmXIt = _global.xit;
  2488. var testProviders;
  2489. var injector;
  2490. jsmBeforeEach(function() {
  2491. testProviders = [];
  2492. injector = null;
  2493. });
  2494. function beforeEachProviders(fn) {
  2495. jsmBeforeEach(function() {
  2496. var providers = fn();
  2497. if (!providers)
  2498. return ;
  2499. testProviders = testProviders.concat(providers);
  2500. if (injector !== null) {
  2501. throw new Error('beforeEachProviders was called after the injector had ' + 'been used in a beforeEach or it block. This invalidates the ' + 'test injector');
  2502. }
  2503. });
  2504. }
  2505. exports.beforeEachProviders = beforeEachProviders;
  2506. function _isPromiseLike(input) {
  2507. return input && !!(input.then);
  2508. }
  2509. function runInTestZone(fnToExecute, finishCallback, failCallback) {
  2510. var pendingMicrotasks = 0;
  2511. var pendingTimeouts = [];
  2512. var ngTestZone = lang_1.global.zone.fork({
  2513. onError: function(e) {
  2514. failCallback(e);
  2515. },
  2516. '$run': function(parentRun) {
  2517. return function() {
  2518. try {
  2519. return parentRun.apply(this, arguments);
  2520. } finally {
  2521. if (pendingMicrotasks == 0 && pendingTimeouts.length == 0) {
  2522. finishCallback();
  2523. }
  2524. }
  2525. };
  2526. },
  2527. '$scheduleMicrotask': function(parentScheduleMicrotask) {
  2528. return function(fn) {
  2529. pendingMicrotasks++;
  2530. var microtask = function() {
  2531. try {
  2532. fn();
  2533. } finally {
  2534. pendingMicrotasks--;
  2535. }
  2536. };
  2537. parentScheduleMicrotask.call(this, microtask);
  2538. };
  2539. },
  2540. '$setTimeout': function(parentSetTimeout) {
  2541. return function(fn, delay) {
  2542. var args = [];
  2543. for (var _i = 2; _i < arguments.length; _i++) {
  2544. args[_i - 2] = arguments[_i];
  2545. }
  2546. var id;
  2547. var cb = function() {
  2548. fn();
  2549. collection_1.ListWrapper.remove(pendingTimeouts, id);
  2550. };
  2551. id = parentSetTimeout(cb, delay, args);
  2552. pendingTimeouts.push(id);
  2553. return id;
  2554. };
  2555. },
  2556. '$clearTimeout': function(parentClearTimeout) {
  2557. return function(id) {
  2558. parentClearTimeout(id);
  2559. collection_1.ListWrapper.remove(pendingTimeouts, id);
  2560. };
  2561. }
  2562. });
  2563. return ngTestZone.run(fnToExecute);
  2564. }
  2565. function _it(jsmFn, name, testFn, testTimeOut) {
  2566. var timeOut = testTimeOut;
  2567. if (testFn instanceof test_injector_1.FunctionWithParamTokens) {
  2568. jsmFn(name, function(done) {
  2569. if (!injector) {
  2570. injector = test_injector_1.createTestInjectorWithRuntimeCompiler(testProviders);
  2571. }
  2572. var finishCallback = function() {
  2573. setTimeout(done, 0);
  2574. };
  2575. var returnedTestValue = runInTestZone(function() {
  2576. return testFn.execute(injector);
  2577. }, finishCallback, done.fail);
  2578. if (testFn.isAsync) {
  2579. if (_isPromiseLike(returnedTestValue)) {
  2580. returnedTestValue.then(null, function(err) {
  2581. done.fail(err);
  2582. });
  2583. } else {
  2584. done.fail('Error: injectAsync was expected to return a promise, but the ' + ' returned value was: ' + returnedTestValue);
  2585. }
  2586. } else {
  2587. if (!(returnedTestValue === undefined)) {
  2588. done.fail('Error: inject returned a value. Did you mean to use injectAsync? Returned ' + 'value was: ' + returnedTestValue);
  2589. }
  2590. }
  2591. }, timeOut);
  2592. } else {
  2593. jsmFn(name, testFn, timeOut);
  2594. }
  2595. }
  2596. function beforeEach(fn) {
  2597. if (fn instanceof test_injector_1.FunctionWithParamTokens) {
  2598. jsmBeforeEach(function(done) {
  2599. var finishCallback = function() {
  2600. setTimeout(done, 0);
  2601. };
  2602. if (!injector) {
  2603. injector = test_injector_1.createTestInjectorWithRuntimeCompiler(testProviders);
  2604. }
  2605. var returnedTestValue = runInTestZone(function() {
  2606. return fn.execute(injector);
  2607. }, finishCallback, done.fail);
  2608. if (fn.isAsync) {
  2609. if (_isPromiseLike(returnedTestValue)) {
  2610. returnedTestValue.then(null, function(err) {
  2611. done.fail(err);
  2612. });
  2613. } else {
  2614. done.fail('Error: injectAsync was expected to return a promise, but the ' + ' returned value was: ' + returnedTestValue);
  2615. }
  2616. } else {
  2617. if (!(returnedTestValue === undefined)) {
  2618. done.fail('Error: inject returned a value. Did you mean to use injectAsync? Returned ' + 'value was: ' + returnedTestValue);
  2619. }
  2620. }
  2621. });
  2622. } else {
  2623. if (fn.length === 0) {
  2624. jsmBeforeEach(function() {
  2625. fn();
  2626. });
  2627. } else {
  2628. jsmBeforeEach(function(done) {
  2629. fn(done);
  2630. });
  2631. }
  2632. }
  2633. }
  2634. exports.beforeEach = beforeEach;
  2635. function it(name, fn, timeOut) {
  2636. if (timeOut === void 0) {
  2637. timeOut = null;
  2638. }
  2639. return _it(jsmIt, name, fn, timeOut);
  2640. }
  2641. exports.it = it;
  2642. function xit(name, fn, timeOut) {
  2643. if (timeOut === void 0) {
  2644. timeOut = null;
  2645. }
  2646. return _it(jsmXIt, name, fn, timeOut);
  2647. }
  2648. exports.xit = xit;
  2649. function iit(name, fn, timeOut) {
  2650. if (timeOut === void 0) {
  2651. timeOut = null;
  2652. }
  2653. return _it(jsmIIt, name, fn, timeOut);
  2654. }
  2655. exports.iit = iit;
  2656. function fit(name, fn, timeOut) {
  2657. if (timeOut === void 0) {
  2658. timeOut = null;
  2659. }
  2660. return _it(jsmIIt, name, fn, timeOut);
  2661. }
  2662. exports.fit = fit;
  2663. global.define = __define;
  2664. return module.exports;
  2665. });
  2666. System.register("angular2/testing", ["angular2/src/testing/testing", "angular2/src/testing/test_component_builder", "angular2/src/testing/test_injector", "angular2/src/testing/fake_async", "angular2/src/mock/view_resolver_mock", "angular2/src/compiler/xhr_mock", "angular2/src/mock/ng_zone_mock", "angular2/src/mock/mock_application_ref", "angular2/src/mock/directive_resolver_mock"], true, function(require, exports, module) {
  2667. var global = System.global,
  2668. __define = global.define;
  2669. global.define = undefined;
  2670. function __export(m) {
  2671. for (var p in m)
  2672. if (!exports.hasOwnProperty(p))
  2673. exports[p] = m[p];
  2674. }
  2675. __export(require("angular2/src/testing/testing"));
  2676. var test_component_builder_1 = require("angular2/src/testing/test_component_builder");
  2677. exports.ComponentFixture = test_component_builder_1.ComponentFixture;
  2678. exports.TestComponentBuilder = test_component_builder_1.TestComponentBuilder;
  2679. __export(require("angular2/src/testing/test_injector"));
  2680. __export(require("angular2/src/testing/fake_async"));
  2681. var view_resolver_mock_1 = require("angular2/src/mock/view_resolver_mock");
  2682. exports.MockViewResolver = view_resolver_mock_1.MockViewResolver;
  2683. var xhr_mock_1 = require("angular2/src/compiler/xhr_mock");
  2684. exports.MockXHR = xhr_mock_1.MockXHR;
  2685. var ng_zone_mock_1 = require("angular2/src/mock/ng_zone_mock");
  2686. exports.MockNgZone = ng_zone_mock_1.MockNgZone;
  2687. var mock_application_ref_1 = require("angular2/src/mock/mock_application_ref");
  2688. exports.MockApplicationRef = mock_application_ref_1.MockApplicationRef;
  2689. var directive_resolver_mock_1 = require("angular2/src/mock/directive_resolver_mock");
  2690. exports.MockDirectiveResolver = directive_resolver_mock_1.MockDirectiveResolver;
  2691. global.define = __define;
  2692. return module.exports;
  2693. });
  2694. //# sourceMappingURL=testing.dev.js.map