11import  { Component }  from  '@angular/core' ; 
22import  { ComponentFixture ,  TestBed }  from  '@angular/core/testing' ; 
33import  { HarnessLoader }  from  '@angular/cdk/testing' ; 
4+ import  { MatIconModule }  from  '@angular/material/icon' ; 
45import  { TestbedHarnessEnvironment }  from  '@angular/cdk/testing/testbed' ; 
56import  { MatMenuModule }  from  '../menu-module' ; 
67import  { MatMenuHarness }  from  './menu-harness' ; 
@@ -18,7 +19,7 @@ describe('MatMenuHarness', () => {
1819
1920    it ( 'should load all menu harnesses' ,  async  ( )  =>  { 
2021      const  menues  =  await  loader . getAllHarnesses ( MatMenuHarness ) ; 
21-       expect ( menues . length ) . toBe ( 2 ) ; 
22+       expect ( menues . length ) . toBe ( 3 ) ; 
2223    } ) ; 
2324
2425    it ( 'should load menu with exact text' ,  async  ( )  =>  { 
@@ -33,6 +34,12 @@ describe('MatMenuHarness', () => {
3334      expect ( await  menus [ 0 ] . getTriggerText ( ) ) . toBe ( 'Settings' ) ; 
3435    } ) ; 
3536
37+     it ( 'should load menu by icon name' ,  async  ( )  =>  { 
38+       const  menus  =  await  loader . getAllHarnesses ( MatMenuHarness . with ( { triggerIconName : 'wrench' } ) ) ; 
39+       expect ( menus . length ) . toBe ( 1 ) ; 
40+       expect ( await  ( await  menus [ 0 ] . host ( ) ) . getAttribute ( 'id' ) ) . toBe ( 'with-icon' ) ; 
41+     } ) ; 
42+ 
3643    it ( 'should get disabled state' ,  async  ( )  =>  { 
3744      const  [ enabledMenu ,  disabledMenu ]  =  await  loader . getAllHarnesses ( MatMenuHarness ) ; 
3845      expect ( await  enabledMenu . isDisabled ( ) ) . toBe ( false ) ; 
@@ -146,39 +153,42 @@ describe('MatMenuHarness', () => {
146153
147154@Component ( { 
148155  template : ` 
149-       <button type="button" id="settings" [matMenuTriggerFor]="settingsMenu">Settings</button> 
150-       <button type="button" disabled [matMenuTriggerFor]="settingsMenu">Disabled menu</button> 
151- 
152-       <mat-menu #settingsMenu> 
153-         <menu mat-menu-item>Profile</menu> 
154-         <menu mat-menu-item>Account</menu> 
155-       </mat-menu> 
156+     <button type="button" id="settings" [matMenuTriggerFor]="settingsMenu">Settings</button> 
157+     <button type="button" disabled [matMenuTriggerFor]="settingsMenu">Disabled menu</button> 
158+     <button type="button" id="with-icon" [matMenuTriggerFor]="settingsMenu"> 
159+       <mat-icon>wrench</mat-icon> 
160+     </button> 
161+ 
162+     <mat-menu #settingsMenu> 
163+       <menu mat-menu-item>Profile</menu> 
164+       <menu mat-menu-item>Account</menu> 
165+     </mat-menu> 
156166  ` , 
157-   imports : [ MatMenuModule ] , 
167+   imports : [ MatMenuModule ,   MatIconModule ] , 
158168} ) 
159169class  MenuHarnessTest  { } 
160170
161171@Component ( { 
162172  template : ` 
163-        <button [matMenuTriggerFor]="menu1">Menu 1</button> 
173+     <button [matMenuTriggerFor]="menu1">Menu 1</button> 
164174
165-        <mat-menu #menu1> 
166-          <button mat-menu-item [matMenuTriggerFor]="menu2">Menu 2</button> 
167-          <button mat-menu-item (click)="lastClickedLeaf = 1">Leaf Item 1</button> 
168-          <button mat-menu-item [matMenuTriggerFor]="menu3">Menu 3</button> 
169-        </mat-menu> 
175+     <mat-menu #menu1> 
176+       <button mat-menu-item [matMenuTriggerFor]="menu2">Menu 2</button> 
177+       <button mat-menu-item (click)="lastClickedLeaf = 1">Leaf Item 1</button> 
178+       <button mat-menu-item [matMenuTriggerFor]="menu3">Menu 3</button> 
179+     </mat-menu> 
170180
171-        <mat-menu #menu2> 
172-          <button mat-menu-item (click)="lastClickedLeaf = 2">Leaf Item 2</button> 
173-        </mat-menu> 
181+     <mat-menu #menu2> 
182+       <button mat-menu-item (click)="lastClickedLeaf = 2">Leaf Item 2</button> 
183+     </mat-menu> 
174184
175-        <mat-menu #menu3> 
176-          <button mat-menu-item [matMenuTriggerFor]="menu4">Menu 4</button> 
177-        </mat-menu> 
185+     <mat-menu #menu3> 
186+       <button mat-menu-item [matMenuTriggerFor]="menu4">Menu 4</button> 
187+     </mat-menu> 
178188
179-        <mat-menu #menu4> 
180-          <button mat-menu-item (click)="lastClickedLeaf = 3">Leaf Item 3</button> 
181-        </mat-menu> 
189+     <mat-menu #menu4> 
190+       <button mat-menu-item (click)="lastClickedLeaf = 3">Leaf Item 3</button> 
191+     </mat-menu> 
182192  ` , 
183193  imports : [ MatMenuModule ] , 
184194} ) 
0 commit comments