Skip to content

Commit 2e651e7

Browse files
tinayuangaokara
authored andcommitted
test(radio): add e2e test for radio button (#1582)
1 parent 9422793 commit 2e651e7

File tree

6 files changed

+76
-0
lines changed

6 files changed

+76
-0
lines changed

e2e/components/radio/radio.e2e.ts

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
describe('radio', function () {
2+
3+
describe('disabling behavior', function () {
4+
beforeEach(function() {
5+
browser.get('/radio');
6+
});
7+
8+
it('should be checked when clicked', function () {
9+
element(by.id('water')).click();
10+
element(by.id('water')).getAttribute('class').then((value: string) => {
11+
expect(value).toContain('md-radio-checked');
12+
});
13+
element(by.css('input[id=water-input]')).getAttribute('checked').then((value: string) => {
14+
expect(value).toBeTruthy();
15+
});
16+
element(by.css('input[id=leaf-input]')).getAttribute('checked').then((value: string) => {
17+
expect(value).toBeFalsy();
18+
});
19+
20+
element(by.id('leaf')).click();
21+
element(by.id('leaf')).getAttribute('class').then((value: string) => {
22+
expect(value).toContain('md-radio-checked');
23+
});
24+
element(by.css('input[id=leaf-input]')).getAttribute('checked').then((value: string) => {
25+
expect(value).toBeTruthy();
26+
});
27+
element(by.css('input[id=water-input]')).getAttribute('checked').then((value: string) => {
28+
expect(value).toBeFalsy();
29+
});
30+
});
31+
32+
it('should be disabled when disable the radio group', function () {
33+
element(by.id('toggle-disable')).click();
34+
element(by.id('water')).click();
35+
element(by.id('water')).getAttribute('class').then((value: string) => {
36+
expect(value).toContain('md-radio-disabled');
37+
});
38+
element(by.css('input[id=water-input]')).getAttribute('disabled').then((value: string) => {
39+
expect(value).toBeTruthy();
40+
});
41+
42+
element(by.id('leaf')).click();
43+
element(by.id('leaf')).getAttribute('class').then((value: string) => {
44+
expect(value).toContain('md-radio-disabled');
45+
});
46+
element(by.css('input[id=leaf-input]')).getAttribute('disabled').then((value: string) => {
47+
expect(value).toBeTruthy();
48+
});
49+
});
50+
});
51+
});

src/e2e-app/e2e-app-module.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import {E2EApp, Home} from './e2e-app/e2e-app';
55
import {IconE2E} from './icon/icon-e2e';
66
import {ButtonE2E} from './button/button-e2e';
77
import {MenuE2E} from './menu/menu-e2e';
8+
import {SimpleRadioButtons} from './radio/radio-e2e';
89
import {BasicTabs} from './tabs/tabs-e2e';
910
import {MaterialModule} from '@angular/material';
1011
import {E2E_APP_ROUTES} from './e2e-app/routes';
@@ -22,6 +23,7 @@ import {E2E_APP_ROUTES} from './e2e-app/routes';
2223
ButtonE2E,
2324
MenuE2E,
2425
BasicTabs,
26+
SimpleRadioButtons,
2527
Home,
2628
],
2729
bootstrap: [E2EApp],

src/e2e-app/e2e-app/e2e-app.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
<a md-list-item [routerLink]="['button']">Button</a>
22
<a md-list-item [routerLink]="['icon']">Icon</a>
33
<a md-list-item [routerLink]="['menu']">Menu</a>
4+
<a md-list-item [routerLink]="['radio']">Radios</a>
45
<a md-list-item [routerLink]="['tabs']">Tabs</a>
56

67
<router-outlet></router-outlet>

src/e2e-app/e2e-app/routes.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,13 @@ import {ButtonE2E} from '../button/button-e2e';
44
import {BasicTabs} from '../tabs/tabs-e2e';
55
import {IconE2E} from '../icon/icon-e2e';
66
import {MenuE2E} from '../menu/menu-e2e';
7+
import {SimpleRadioButtons} from '../radio/radio-e2e';
78

89
export const E2E_APP_ROUTES: Routes = [
910
{path: '', component: Home},
1011
{path: 'button', component: ButtonE2E},
1112
{path: 'menu', component: MenuE2E},
1213
{path: 'icon', component: IconE2E},
14+
{path: 'radio', component: SimpleRadioButtons},
1315
{path: 'tabs', component: BasicTabs}
1416
];

src/e2e-app/radio/radio-e2e.html

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<section>
2+
<md-radio-group [disabled]="isGroupDisabled"
3+
[(value)]="groupValue"
4+
id="test-group">
5+
<md-radio-button value="fire" id="fire">Charmander</md-radio-button>
6+
<md-radio-button value="water" id="water">Squirtle</md-radio-button>
7+
<md-radio-button value="leaf" id="leaf">Bulbasaur</md-radio-button>
8+
</md-radio-group>
9+
<button (click)="isGroupDisabled=!isGroupDisabled" id="toggle-disable">Disable/enable group</button>
10+
</section>

src/e2e-app/radio/radio-e2e.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import {Component} from '@angular/core';
2+
3+
@Component({
4+
moduleId: module.id,
5+
selector: 'radio-e2e',
6+
templateUrl: 'radio-e2e.html',
7+
})
8+
export class SimpleRadioButtons {
9+
isGroupDisabled: boolean = false;
10+
}

0 commit comments

Comments
 (0)