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