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

Side by Side 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 unified diff | Download patch
OLDNEW
(Empty)
1 <!--
2 Copyright 2016 The Chromium Authors. All rights reserved.
3 Use of this source code is governed by a BSD-style license that can be
4 found in the LICENSE file.
5 -->
6
7 <!doctype html>
8 <title>rpc-completer</title>
9
10 <script src="../../bower_components/web-component-tester/browser.js"></script>
11 <link rel="import" href="../rpc-completer.html">
12 <link rel="import" href="descriptor.html">
13
14 <test-fixture id="completer">
15 <template>
16 <rpc-completer></rpc-completer>
17 </template>
18 </test-fixture>
19 <script>
20 'use strict';
21
22 suite('<rpc-completer>', function() {
23 var completer;
24
25 setup(function() {
26 completer = fixture('completer');
27 completer.description = JSON.parse(JSON.stringify(discoveryDescriptor));
28 rpcExplorer.descUtil.annotateSet(completer.description);
29 });
30
31 suite('findMatching', function() {
32 function testFindMatching(text, i, expected) {
33 test(text + ' @ ' + i + ' = ' + expected, function() {
34 var result = completer.findMatching(text, i);
35 expect(result).to.equal(expected);
36 });
37 }
38 testFindMatching('{}', 0, 1);
39 testFindMatching('{{}}', 0, 3);
40 testFindMatching('{{}}', 1, 2);
41 testFindMatching('{[]}', 0, 3);
42 testFindMatching('{[]}', 1, 2);
43 testFindMatching('{aa[bb]ccc}', 0, 10);
44 testFindMatching('{aa[bb]ccc}', 3, 6);
45 });
46
47 suite('getCurrentPath', function() {
48 function testCurrentPath(text, expected) {
49 test('`' + text + '`', function() {
50 var path = completer.getCurrentPath(text);
51 expect(path.join('')).to.deep.equal(expected);
52 });
53 }
54
55 testCurrentPath('', '');
56
57 testCurrentPath(
58 '{ "a": ',
59 'a');
60 testCurrentPath(
61 '{ "a": "',
62 'a');
63 testCurrentPath(
64 '{ "a": {',
65 'a');
66
67 testCurrentPath(
68 '{ "a": { "b": [',
69 'ab');
70 testCurrentPath(
71 '{ "a": {}, "b": {',
72 'b');
73 testCurrentPath(
74 '{ "a": [], "b": {',
75 'b');
76 testCurrentPath(
77 '{ "a": { "b": ',
78 'ab');
79 testCurrentPath(
80 '{ "a": { "b": "',
81 'ab');
82 });
83
84 suite('getCompletionsForText', function() {
85 var fileSet = rpcExplorer.descUtil.resolve(
86 discoveryDescriptor, 'google.protobuf.FileDescriptorSet');
87
88 test('FileDescriptorSet', function() {
89 var completions = completer.getCompletionsForText(fileSet, '')
90 expect(completions).to.deep.equal([{
91 caption: 'file',
92 snippet: '"file": [{${0}}]',
93 meta: 'repeated google.protobuf.FileDescriptorProto',
94 docTooltip: ''
95 }]);
96 });
97
98 test('FileDescriptorSet with quote', function() {
99 var completions = completer.getCompletionsForText(fileSet, '"')
100 expect(completions).to.deep.equal([{
101 caption: 'file',
102 snippet: 'file',
103 meta: 'repeated google.protobuf.FileDescriptorProto',
104 docTooltip: ''
105 }]);
106 });
107
108 test('submessage', function() {
109 var completions = completer.getCompletionsForText(fileSet, '"file":[{');
110 expect(completions).to.have.length(12);
111 expect(completions).to.contain({
112 caption: 'name',
113 snippet: '"name": "${0}"',
114 meta: 'string',
115 docTooltip: ''
116 });
117 expect(completions).to.contain({
118 caption: 'dependency',
119 snippet: '"dependency": ["${0}"]',
120 meta: 'repeated string',
121 docTooltip: ' Names of files imported by this file.\n'
122 });
123 expect(completions).to.contain({
124 caption: 'weak_dependency',
125 snippet: '"weak_dependency": [${0}]',
126 meta: 'repeated int32',
127 docTooltip: (
128 ' Indexes of the weak imported files in the dependency list.\n' +
129 ' For Google-internal migration only. Do not use.\n')
130 });
131 });
132
133 test('enum values', function() {
134 // Completions for FieldOptions.CType.
135 var completions = completer.getCompletionsForText(
136 fileSet,
137 '"file":[{"message_type":{"field":{"options": {"ctype": ');
138 expect(completions).to.deep.equal([
139 {
140 caption: 'STRING',
141 snippet: '"STRING"',
142 meta: '0',
143 docTooltip: ' Default mode.\n'
144 },
145 {
146 caption: 'CORD',
147 snippet: '"CORD"',
148 meta: '1',
149 docTooltip: ''
150 },
151 {
152 caption: 'STRING_PIECE',
153 snippet: '"STRING_PIECE"',
154 meta: '2',
155 docTooltip: ''
156 },
157 ]);
158 });
159 });
160 });
161 </script>
OLDNEW
« 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