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

Unified Diff: server/static/rpcexplorer/test/rpc-completer.html

Issue 1695893004: RPC Explorer (Closed) Base URL: https://chromium.googlesource.com/external/github.com/luci/luci-go@rpcepxlorer-deps
Patch Set: 80 chars Created 4 years, 10 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: server/static/rpcexplorer/test/rpc-completer.html
diff --git a/server/static/rpcexplorer/test/rpc-completer.html b/server/static/rpcexplorer/test/rpc-completer.html
new file mode 100644
index 0000000000000000000000000000000000000000..c21d1b31245e2c256278d14d37a02bce67f43217
--- /dev/null
+++ b/server/static/rpcexplorer/test/rpc-completer.html
@@ -0,0 +1,161 @@
+<!--
+ Copyright 2016 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.
+ -->
+
+<!doctype html>
+<title>rpc-completer</title>
+
+<script src="../../bower_components/web-component-tester/browser.js"></script>
+<link rel="import" href="../rpc-completer.html">
+<link rel="import" href="descriptor.html">
+
+<test-fixture id="completer">
+ <template>
+ <rpc-completer></rpc-completer>
+ </template>
+</test-fixture>
+<script>
+ 'use strict';
+
+ suite('<rpc-completer>', function() {
+ var completer;
+
+ setup(function() {
+ completer = fixture('completer');
+ completer.description = JSON.parse(JSON.stringify(discoveryDescriptor));
+ rpcExplorer.descUtil.annotateSet(completer.description);
+ });
+
+ suite('findMatching', function() {
+ function testFindMatching(text, i, expected) {
+ test(text + ' @ ' + i + ' = ' + expected, function() {
+ var result = completer.findMatching(text, i);
+ expect(result).to.equal(expected);
+ });
+ }
+ testFindMatching('{}', 0, 1);
+ testFindMatching('{{}}', 0, 3);
+ testFindMatching('{{}}', 1, 2);
+ testFindMatching('{[]}', 0, 3);
+ testFindMatching('{[]}', 1, 2);
+ testFindMatching('{aa[bb]ccc}', 0, 10);
+ testFindMatching('{aa[bb]ccc}', 3, 6);
+ });
+
+ suite('getCurrentPath', function() {
+ function testCurrentPath(text, expected) {
+ test('`' + text + '`', function() {
+ var path = completer.getCurrentPath(text);
+ expect(path.join('')).to.deep.equal(expected);
+ });
+ }
+
+ testCurrentPath('', '');
+
+ testCurrentPath(
+ '{ "a": ',
+ 'a');
+ testCurrentPath(
+ '{ "a": "',
+ 'a');
+ testCurrentPath(
+ '{ "a": {',
+ 'a');
+
+ testCurrentPath(
+ '{ "a": { "b": [',
+ 'ab');
+ testCurrentPath(
+ '{ "a": {}, "b": {',
+ 'b');
+ testCurrentPath(
+ '{ "a": [], "b": {',
+ 'b');
+ testCurrentPath(
+ '{ "a": { "b": ',
+ 'ab');
+ testCurrentPath(
+ '{ "a": { "b": "',
+ 'ab');
+ });
+
+ suite('getCompletionsForText', function() {
+ var fileSet = rpcExplorer.descUtil.resolve(
+ discoveryDescriptor, 'google.protobuf.FileDescriptorSet');
+
+ test('FileDescriptorSet', function() {
+ var completions = completer.getCompletionsForText(fileSet, '')
+ expect(completions).to.deep.equal([{
+ caption: 'file',
+ snippet: '"file": [{${0}}]',
+ meta: 'repeated google.protobuf.FileDescriptorProto',
+ docTooltip: ''
+ }]);
+ });
+
+ test('FileDescriptorSet with quote', function() {
+ var completions = completer.getCompletionsForText(fileSet, '"')
+ expect(completions).to.deep.equal([{
+ caption: 'file',
+ snippet: 'file',
+ meta: 'repeated google.protobuf.FileDescriptorProto',
+ docTooltip: ''
+ }]);
+ });
+
+ test('submessage', function() {
+ var completions = completer.getCompletionsForText(fileSet, '"file":[{');
+ expect(completions).to.have.length(12);
+ expect(completions).to.contain({
+ caption: 'name',
+ snippet: '"name": "${0}"',
+ meta: 'string',
+ docTooltip: ''
+ });
+ expect(completions).to.contain({
+ caption: 'dependency',
+ snippet: '"dependency": ["${0}"]',
+ meta: 'repeated string',
+ docTooltip: ' Names of files imported by this file.\n'
+ });
+ expect(completions).to.contain({
+ caption: 'weak_dependency',
+ snippet: '"weak_dependency": [${0}]',
+ meta: 'repeated int32',
+ docTooltip: (
+ ' Indexes of the weak imported files in the dependency list.\n' +
+ ' For Google-internal migration only. Do not use.\n')
+ });
+ });
+
+ test('enum values', function() {
+ // Completions for FieldOptions.CType.
+ var completions = completer.getCompletionsForText(
+ fileSet,
+ '"file":[{"message_type":{"field":{"options": {"ctype": ');
+ expect(completions).to.deep.equal([
+ {
+ caption: 'STRING',
+ snippet: '"STRING"',
+ meta: '0',
+ docTooltip: ' Default mode.\n'
+ },
+ {
+ caption: 'CORD',
+ snippet: '"CORD"',
+ meta: '1',
+ docTooltip: ''
+ },
+ {
+ caption: 'STRING_PIECE',
+ snippet: '"STRING_PIECE"',
+ meta: '2',
+ docTooltip: ''
+ },
+ ]);
+ });
+ });
+ });
+</script>
« no previous file with comments | « server/static/rpcexplorer/test/descriptor.html ('k') | server/static/rpcexplorer/test/rpc-descriptor-util.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698