From a57cb72fcc84ca2feafa9f95f357a4f0d06038fc Mon Sep 17 00:00:00 2001 From: Wagner Maciel Date: Fri, 17 Jul 2020 11:35:13 -0700 Subject: [PATCH 1/3] fix(mdc-indigo-pink): add mat-core and mat-core-theme to indigo-pink From 82c6fcbfdea4f207bf361cc3a125ecee83878f3b Mon Sep 17 00:00:00 2001 From: Wagner Maciel Date: Wed, 29 Jul 2020 12:35:19 -0700 Subject: [PATCH 2/3] test(mdc-slide-toggle): add performance tests for mdc-slide-toggle --- test/benchmarks/mdc/slide-toggle/BUILD.bazel | 22 ++++++++++ .../benchmarks/mdc/slide-toggle/app.module.ts | 44 +++++++++++++++++++ .../slide-toggle/slide-toggle.perf-spec.ts | 38 ++++++++++++++++ 3 files changed, 104 insertions(+) create mode 100644 test/benchmarks/mdc/slide-toggle/BUILD.bazel create mode 100644 test/benchmarks/mdc/slide-toggle/app.module.ts create mode 100755 test/benchmarks/mdc/slide-toggle/slide-toggle.perf-spec.ts diff --git a/test/benchmarks/mdc/slide-toggle/BUILD.bazel b/test/benchmarks/mdc/slide-toggle/BUILD.bazel new file mode 100644 index 000000000000..ec1638e4f276 --- /dev/null +++ b/test/benchmarks/mdc/slide-toggle/BUILD.bazel @@ -0,0 +1,22 @@ +load("@npm_angular_dev_infra_private//benchmark/component_benchmark:component_benchmark.bzl", "component_benchmark") + +# TODO(wagnermaciel): Update this target to provide indigo-pink in a way that doesn't require having to import it with +# stylesUrls inside the components once `component_benchmark` supports asset injection. + +component_benchmark( + name = "benchmark", + driver = ":slide-toggle.perf-spec.ts", + driver_deps = [ + "@npm//@angular/dev-infra-private", + "@npm//protractor", + "@npm//@types/jasmine", + ], + ng_deps = [ + "@npm//@angular/core", + "@npm//@angular/platform-browser", + "//src/material-experimental/mdc-slide-toggle", + ], + ng_srcs = [":app.module.ts"], + prefix = "", + styles = ["//src/material-experimental/mdc-theming:indigo_pink_prebuilt"], +) diff --git a/test/benchmarks/mdc/slide-toggle/app.module.ts b/test/benchmarks/mdc/slide-toggle/app.module.ts new file mode 100644 index 000000000000..e6a1d93f775b --- /dev/null +++ b/test/benchmarks/mdc/slide-toggle/app.module.ts @@ -0,0 +1,44 @@ +/** + * @license + * Copyright Google LLC 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 {Component, NgModule, ViewEncapsulation} from '@angular/core'; +import {BrowserModule} from '@angular/platform-browser'; +import {MatSlideToggleModule} from '@angular/material-experimental/mdc-slide-toggle'; + +/** component: mdc-slide-toggle */ + +@Component({ + selector: 'app-root', + template: ` + + + + + Slide me! + + `, + encapsulation: ViewEncapsulation.None, + styleUrls: ['//src/material-experimental/mdc-theming/prebuilt/indigo-pink.css'], +}) +export class SlideToggleBenchmarkApp { + isVisible = false; + show() { this.isVisible = true; } + hide() { this.isVisible = false; } +} + + +@NgModule({ + declarations: [SlideToggleBenchmarkApp], + imports: [ + BrowserModule, + MatSlideToggleModule, + ], + providers: [], + bootstrap: [SlideToggleBenchmarkApp] +}) +export class AppModule {} diff --git a/test/benchmarks/mdc/slide-toggle/slide-toggle.perf-spec.ts b/test/benchmarks/mdc/slide-toggle/slide-toggle.perf-spec.ts new file mode 100755 index 000000000000..b81128f5fb64 --- /dev/null +++ b/test/benchmarks/mdc/slide-toggle/slide-toggle.perf-spec.ts @@ -0,0 +1,38 @@ +/** + * @license + * Copyright Google LLC 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 {$, browser} from 'protractor'; +import {runBenchmark} from '@angular/dev-infra-private/benchmark/driver-utilities'; + +describe('slide toggle performance benchmarks', () => { + beforeAll(() => { + browser.rootEl = '#root'; + }); + + it('renders a slide toggle', async() => { + await runBenchmark({ + id: 'slide-toggle-render', + url: '', + ignoreBrowserSynchronization: true, + params: [], + prepare: async () => await $('#hide').click(), + work: async () => await $('#show').click(), + }); + }); + + it('clicks a slide toggle', async() => { + await runBenchmark({ + id: 'slide-toggle-click', + url: '', + ignoreBrowserSynchronization: true, + params: [], + setup: async () => await $('#show').click(), + work: async () => await $('.mat-mdc-slide-toggle label').click(), + }); + }); +}); From 337a30d70786152b167c2ec32d3ff59eb83c6e5b Mon Sep 17 00:00:00 2001 From: Wagner Maciel Date: Thu, 30 Jul 2020 09:16:42 -0700 Subject: [PATCH 3/3] fix(mdc-slide-toggle-benchmark): remove unnecessary provider --- test/benchmarks/mdc/slide-toggle/app.module.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/test/benchmarks/mdc/slide-toggle/app.module.ts b/test/benchmarks/mdc/slide-toggle/app.module.ts index e6a1d93f775b..0fe1abb0217a 100644 --- a/test/benchmarks/mdc/slide-toggle/app.module.ts +++ b/test/benchmarks/mdc/slide-toggle/app.module.ts @@ -38,7 +38,6 @@ export class SlideToggleBenchmarkApp { BrowserModule, MatSlideToggleModule, ], - providers: [], bootstrap: [SlideToggleBenchmarkApp] }) export class AppModule {}