aboutsummaryrefslogtreecommitdiff
path: root/parser_test.lua
diff options
context:
space:
mode:
Diffstat (limited to 'parser_test.lua')
-rwxr-xr-xparser_test.lua16
1 files changed, 16 insertions, 0 deletions
diff --git a/parser_test.lua b/parser_test.lua
index 28f3d0f..1b5e4b1 100755
--- a/parser_test.lua
+++ b/parser_test.lua
@@ -8,6 +8,22 @@ end
local lunatest = require('lunatest')
+-- Actual LSP message in the wild.
+function test_msg_with_content_type() -- luacheck: ignore 111
+ local msg = 'Content-Type: application/vscode-jsonrpc; charset=utf8\r\n' ..
+ 'Content-Length: 1996\r\n\r\n' ..
+ [[{"jsonrpc":"2.0","id":0,"result":{"capabilities":{"textDocumentSync":1,"completionProvider":{"triggerCharacters":[":",">","$","[","@","(","'","\"","\\"],"resolveProvider":true},"hoverProvider":true,"signatureHelpProvider":{"triggerCharacters":["(",",","@"]},"definitionProvider":true,"typeDefinitionProvider":true,"implementationProvider":true,"referencesProvider":true,"documentHighlightProvider":true,"documentSymbolProvider":true,"codeActionProvider":{"codeActionKinds":["refactor.class.simplify","quickfix.import_class","quickfix.promote_constructor","quickfix.remove_unused_imports","quickfix.promote_constructor_public","quickfix.complete_constructor","quickfix.fill.object","quickfix.here_doc_provider","quickfix.complete_constructor_public","refactor.extract.constant","refactor.extract.method","quickfix.generate_member","quickfix.create_class","quickfix.add_missing_return_types","quickfix.add_missing_params","quickfix.add_missing_docblocks_return","quickfix.fix_namespace_class_name","refactor.extract.expression","quickfix.fill.matchArms","quickfix.correct_variable_name","quickfix.create_unresolable_class","quickfix.generate_decorator","refactor","quickfix.generate_mutators","quickfix.add_missing_properties","quickfix.implement_contracts","quickfix.add_missing_class_generic","quickfix.generate_accessors","quickfix.override_method"]},"workspaceSymbolProvider":true,"renameProvider":{"prepareProvider":true},"selectionRangeProvider":true,"executeCommandProvider":{"commands":["name_import","transform","create_class","generate_member","extract_method","replace_qualifier_with_import","extract_constant","generate_accessors","generate_mutators","import_all_unresolved_names","extract_expression","generate_decorator","override_method"]},"inlineValueProvider":true,"workspace":{"fileOperations":{"willRename":{"filters":[{"pattern":{"glob":"**\/*.php"}}]}}},"experimental":{"xevaluatableExpressionProvider":true}},"serverInfo":{"name":"phpactor\/phpactor","version":"dev-master"}}}]] -- luacheck: ignore 631
+
+ local p = parser.new()
+ local err = p:add(msg)
+ lunatest.assert_nil(err)
+
+ local msgs = p:get_msgs()
+ lunatest.assert_table(msgs)
+ lunatest.assert_len(1, msgs)
+ lunatest.assert_not_nil(msgs[1])
+end
+
function test_complete_msg() -- luacheck: ignore 111
local msg = build_msg('foo')
local p = parser.new()