/** * @license * Copyright Google Inc. All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ import {ddescribe, describe, it, iit, xit, expect, beforeEach, afterEach, inject,} from '@angular/core/testing/testing_internal'; import {ReplacePipe} from '@angular/common'; import {RegExpWrapper, StringJoiner} from '../../src/facade/lang'; export function main() { describe('ReplacePipe', () => { var someNumber: number; var str: string; var pipe: ReplacePipe; beforeEach(() => { someNumber = 42; str = 'Douglas Adams'; pipe = new ReplacePipe(); }); describe('transform', () => { it('should not support input other than strings and numbers', () => { expect(() => pipe.transform({}, 'Douglas', 'Hugh')).toThrow(); expect(() => pipe.transform([1, 2, 3], 'Douglas', 'Hugh')).toThrow(); }); it('should not support patterns other than strings and regular expressions', () => { expect(() => pipe.transform(str, {}, 'Hugh')).toThrow(); expect(() => pipe.transform(str, null, 'Hugh')).toThrow(); expect(() => pipe.transform(str, 123, 'Hugh')).toThrow(); }); it('should not support replacements other than strings and functions', () => { expect(() => pipe.transform(str, 'Douglas', {})).toThrow(); expect(() => pipe.transform(str, 'Douglas', null)).toThrow(); expect(() => pipe.transform(str, 'Douglas', 123)).toThrow(); }); it('should return a new string with the pattern replaced', () => { var result1 = pipe.transform(str, 'Douglas', 'Hugh'); var result2 = pipe.transform(str, RegExpWrapper.create('a'), '_'); var result3 = pipe.transform(str, RegExpWrapper.create('a', 'i'), '_'); var f = ((x: any) => { return 'Adams!'; }); var result4 = pipe.transform(str, 'Adams', f); var result5 = pipe.transform(someNumber, '2', '4'); expect(result1).toEqual('Hugh Adams'); expect(result2).toEqual('Dougl_s Ad_ms'); expect(result3).toEqual('Dougl_s _d_ms'); expect(result4).toEqual('Douglas Adams!'); expect(result5).toEqual('44'); }); }); }); }