1- import  { async ,  TestBed ,  inject ,  ComponentFixture }  from  '@angular/core/testing' ; 
1+ import  { async ,  ComponentFixture ,  inject ,  TestBed }  from  '@angular/core/testing' ; 
22import  { Component ,  ViewChild }  from  '@angular/core' ; 
33import  { 
4-   FormsModule , 
5-   ReactiveFormsModule , 
64  FormControl , 
7-   NgForm , 
8-   Validators , 
9-   FormGroupDirective , 
105  FormGroup , 
6+   FormGroupDirective , 
7+   FormsModule , 
8+   NgForm , 
9+   ReactiveFormsModule , 
10+   Validators 
1111}  from  '@angular/forms' ; 
1212import  { By }  from  '@angular/platform-browser' ; 
1313import  { NoopAnimationsModule }  from  '@angular/platform-browser/animations' ; 
@@ -18,52 +18,53 @@ import {PlatformModule} from '../core/platform/index';
1818import  { wrappedErrorMessage }  from  '../core/testing/wrapped-error-message' ; 
1919import  { dispatchFakeEvent }  from  '../core/testing/dispatch-events' ; 
2020import  { 
21+   MdInputContainerDuplicatedHintError , 
2122  MdInputContainerMissingMdInputError , 
22-   MdInputContainerPlaceholderConflictError , 
23-   MdInputContainerDuplicatedHintError 
23+   MdInputContainerPlaceholderConflictError 
2424}  from  './input-container-errors' ; 
2525
2626
2727describe ( 'MdInputContainer' ,  function  ( )  { 
2828  beforeEach ( async ( ( )  =>  { 
2929    TestBed . configureTestingModule ( { 
3030      imports : [ 
31-         MdInputModule . forRoot ( ) , 
32-         PlatformModule . forRoot ( ) , 
3331        FormsModule , 
32+         MdInputModule , 
33+         NoopAnimationsModule , 
34+         PlatformModule , 
3435        ReactiveFormsModule , 
35-         NoopAnimationsModule 
3636      ] , 
3737      declarations : [ 
38-         MdInputContainerPlaceholderRequiredTestComponent , 
39-         MdInputContainerPlaceholderElementTestComponent , 
40-         MdInputContainerPlaceholderAttrTestComponent , 
38+         MdInputContainerBaseTestController , 
39+         MdInputContainerDateTestController , 
4140        MdInputContainerHintLabel2TestController , 
4241        MdInputContainerHintLabelTestController , 
43-         MdInputContainerInvalidTypeTestController , 
44-         MdInputContainerInvalidPlaceholderTestController , 
4542        MdInputContainerInvalidHint2TestController , 
4643        MdInputContainerInvalidHintTestController , 
47-         MdInputContainerBaseTestController , 
48-         MdInputContainerWithId , 
49-         MdInputContainerDateTestController , 
50-         MdInputContainerTextTestController , 
51-         MdInputContainerPasswordTestController , 
44+         MdInputContainerInvalidPlaceholderTestController , 
45+         MdInputContainerInvalidTypeTestController , 
46+         MdInputContainerMissingMdInputTestController , 
47+         MdInputContainerMultipleHintMixedTestController , 
48+         MdInputContainerMultipleHintTestController , 
5249        MdInputContainerNumberTestController , 
53-         MdInputContainerZeroTestController , 
54-         MdTextareaWithBindings , 
50+         MdInputContainerPasswordTestController , 
51+         MdInputContainerPlaceholderAttrTestComponent , 
52+         MdInputContainerPlaceholderElementTestComponent , 
53+         MdInputContainerPlaceholderRequiredTestComponent , 
54+         MdInputContainerTextTestController , 
5555        MdInputContainerWithDisabled , 
56+         MdInputContainerWithDynamicPlaceholder , 
57+         MdInputContainerWithFormControl , 
58+         MdInputContainerWithFormErrorMessages , 
59+         MdInputContainerWithFormGroupErrorMessages , 
60+         MdInputContainerWithId , 
61+         MdInputContainerWithPrefixAndSuffix , 
5662        MdInputContainerWithRequired , 
63+         MdInputContainerWithStaticPlaceholder , 
5764        MdInputContainerWithType , 
5865        MdInputContainerWithValueBinding , 
59-         MdInputContainerWithFormControl , 
60-         MdInputContainerWithStaticPlaceholder , 
61-         MdInputContainerMissingMdInputTestController , 
62-         MdInputContainerMultipleHintTestController , 
63-         MdInputContainerMultipleHintMixedTestController , 
64-         MdInputContainerWithDynamicPlaceholder , 
65-         MdInputContainerWithFormErrorMessages , 
66-         MdInputContainerWithFormGroupErrorMessages 
66+         MdInputContainerZeroTestController , 
67+         MdTextareaWithBindings , 
6768      ] , 
6869    } ) ; 
6970
@@ -685,6 +686,29 @@ describe('MdInputContainer', function () {
685686
686687  } ) ; 
687688
689+   it ( 'should not have prefix and suffix elements when none are specified' ,  ( )  =>  { 
690+     let  fixture  =  TestBed . createComponent ( MdInputContainerWithId ) ; 
691+     fixture . detectChanges ( ) ; 
692+ 
693+     let  prefixEl  =  fixture . debugElement . query ( By . css ( '.mat-input-prefix' ) ) ; 
694+     let  suffixEl  =  fixture . debugElement . query ( By . css ( '.mat-input-suffix' ) ) ; 
695+ 
696+     expect ( prefixEl ) . toBeNull ( ) ; 
697+     expect ( suffixEl ) . toBeNull ( ) ; 
698+   } ) ; 
699+ 
700+   it ( 'should add prefix and suffix elements when specified' ,  ( )  =>  { 
701+     let  fixture  =  TestBed . createComponent ( MdInputContainerWithPrefixAndSuffix ) ; 
702+     fixture . detectChanges ( ) ; 
703+ 
704+     let  prefixEl  =  fixture . debugElement . query ( By . css ( '.mat-input-prefix' ) ) ; 
705+     let  suffixEl  =  fixture . debugElement . query ( By . css ( '.mat-input-suffix' ) ) ; 
706+ 
707+     expect ( prefixEl ) . not . toBeNull ( ) ; 
708+     expect ( suffixEl ) . not . toBeNull ( ) ; 
709+     expect ( prefixEl . nativeElement . innerText . trim ( ) ) . toEqual ( 'Prefix' ) ; 
710+     expect ( suffixEl . nativeElement . innerText . trim ( ) ) . toEqual ( 'Suffix' ) ; 
711+   } ) ; 
688712} ) ; 
689713
690714@Component ( { 
@@ -927,7 +951,6 @@ class MdInputContainerWithFormErrorMessages {
927951  renderError  =  true ; 
928952} 
929953
930- 
931954@Component ( { 
932955  template : ` 
933956    <form [formGroup]="formGroup" novalidate> 
@@ -945,3 +968,14 @@ class MdInputContainerWithFormGroupErrorMessages {
945968    name : new  FormControl ( '' ,  Validators . required ) 
946969  } ) ; 
947970} 
971+ 
972+ @Component ( { 
973+   template : ` 
974+     <md-input-container> 
975+       <div mdPrefix>Prefix</div> 
976+       <input mdInput> 
977+       <div mdSuffix>Suffix</div> 
978+     </md-input-container> 
979+   ` 
980+ } ) 
981+ class  MdInputContainerWithPrefixAndSuffix  { } 
0 commit comments