Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(259)

Unified Diff: dashboard/dashboard/elements/pinpoint-perf-job-dialog-test.html

Issue 3018723002: .
Patch Set: Created 3 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: dashboard/dashboard/elements/pinpoint-perf-job-dialog-test.html
diff --git a/dashboard/dashboard/elements/pinpoint-perf-job-dialog-test.html b/dashboard/dashboard/elements/pinpoint-perf-job-dialog-test.html
new file mode 100644
index 0000000000000000000000000000000000000000..248fe2eb5024b83a4a533999d11855d2884f95d8
--- /dev/null
+++ b/dashboard/dashboard/elements/pinpoint-perf-job-dialog-test.html
@@ -0,0 +1,164 @@
+<!DOCTYPE html>
+<!--
+Copyright 2017 The Chromium Authors. All rights reserved.
+Use of this source code is governed by a BSD-style license that can be
+found in the LICENSE file.
+-->
+
+<link rel="import" href="/dashboard/elements/pinpoint-perf-job-dialog.html">
+<link rel="import" href="/dashboard/static/simple_xhr.html">
+<link rel="import" href="/dashboard/static/testing_common.html">
+
+<link rel="import" href="/tracing/base/unit.html">
+<link rel="import" href="/tracing/core/test_utils.html">
+
+<script>
+'use strict';
+
+tr.b.unittest.testSuite(function() {
+ const testOptions = {
+ tearDown() {
+ testing_common.clearXhrMock();
+ }
+ };
+
+ test('instantiation', function() {
+ const page = document.createElement('pinpoint-perf-job-dialog');
+ page.show();
+ this.addHTMLOutput(page);
+ page.close();
+ }, testOptions);
+
+ test('onSendToTrybot success fires toast', async function() {
+ const mockResponse = {
+ 'jobId': 12345,
+ 'jobUrl': 'http://abc'
+ };
+ testing_common.addXhrMock('*', JSON.stringify(mockResponse));
+ const page = document.createElement('pinpoint-perf-job-dialog');
+ this.addHTMLOutput(page);
+
+ page.show();
+
+ let fired = false;
+ page.fire = function(eventName) {
+ if (eventName === 'display-toast') {
+ fired = true;
+ }
+ };
+ await page.onSendToTrybot();
+ page.close();
+
+ assert.strictEqual(page.error, '');
+ assert.isTrue(fired);
+ }, testOptions);
+
+ test('onSendToTrybot failure shows error', async function() {
+ const mockResponse = {
+ 'error': 'foo'
+ };
+ testing_common.addXhrMock('*', JSON.stringify(mockResponse));
+ const page = document.createElement('pinpoint-perf-job-dialog');
+ this.addHTMLOutput(page);
+
+ page.show();
+
+ let fired = false;
+ page.fire = function(eventName) {
+ if (eventName === 'display-toast') {
+ fired = true;
+ }
+ };
+ await page.onSendToTrybot();
+ page.close();
+
+ assert.strictEqual(page.error, 'foo');
+ assert.isFalse(fired);
+ }, testOptions);
+
+ const originalAsPromise = simple_xhr.asPromise;
+ const testOptionsOverwriteSimpleXhr = {
+ tearDown() {
+ simple_xhr.asPromise = originalAsPromise;
+ }
+ };
+
+ test('onSendToTrybot trace_categories included', async function() {
+ const mockResponse = {
+ 'jobId': 12345
+ };
+ const page = document.createElement('pinpoint-perf-job-dialog');
+ this.addHTMLOutput(page);
+
+ page.testPath = 'master/bot/suite/foo';
+ page.startCommit = '1234567890';
+ page.endCommit = '0987654321';
+ page.startRepository = 'chromium';
+ page.endRepository = 'chromium';
+ page.show();
+ page.traceCategories = 'a,b,c';
+ page.useTrace = true;
+ page.atraceCategories = '1,2,3';
+ page.useAtrace = false;
+
+ let params;
+ simple_xhr.asPromise = function(_, p) {
+ params = p;
+ return new Promise(function(resolve, reject) {
+ resolve({jobId: 12345});
+ });
+ };
+
+ await page.onSendToTrybot();
+ page.close();
+
+ assert.strictEqual(params.test_path, 'master/bot/suite/foo');
+ assert.strictEqual(params.start_commit, '1234567890');
+ assert.strictEqual(params.end_commit, '0987654321');
+ assert.strictEqual(params.start_repository, 'chromium');
+ assert.strictEqual(params.end_repository, 'chromium');
+ assert.deepEqual(params.extra_telemetry_args, [
+ ['--extra-chrome-categories', 'a,b,c']
+ ]);
+ }, testOptionsOverwriteSimpleXhr);
+
+ test('onSendToTrybot atrace_categories included', async function() {
+ const mockResponse = {
+ 'jobId': 12345
+ };
+ const page = document.createElement('pinpoint-perf-job-dialog');
+ this.addHTMLOutput(page);
+
+ page.testPath = 'master/bot/suite/foo';
+ page.startCommit = '1234567890';
+ page.endCommit = '0987654321';
+ page.startRepository = 'chromium';
+ page.endRepository = 'chromium';
+ page.show();
+ page.traceCategories = 'a,b,c';
+ page.useTrace = false;
+ page.atraceCategories = '1,2,3';
+ page.useAtrace = true;
+
+ let params;
+ simple_xhr.asPromise = function(_, p) {
+ params = p;
+ return new Promise(function(resolve, reject) {
+ resolve({jobId: 12345});
+ });
+ };
+
+ await page.onSendToTrybot();
+ page.close();
+
+ assert.strictEqual(params.test_path, 'master/bot/suite/foo');
+ assert.strictEqual(params.start_commit, '1234567890');
+ assert.strictEqual(params.end_commit, '0987654321');
+ assert.strictEqual(params.start_repository, 'chromium');
+ assert.strictEqual(params.end_repository, 'chromium');
+ assert.deepEqual(params.extra_telemetry_args, [
+ ['--extra-atrace-categories', '1,2,3']
+ ]);
+ }, testOptionsOverwriteSimpleXhr);
+});
+</script>
« no previous file with comments | « dashboard/dashboard/elements/pinpoint-perf-job-dialog.html ('k') | dashboard/dashboard/elements/trace-button.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698