/** * Copyright (c) 2013-2016 Angelo ZERR. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Angelo Zerr <angelo.zerr@gmail.com> - initial API and implementation */ package tern.server.protocol.linter.lint; import org.junit.Assert; import org.junit.Test; import tern.ITernProject; import tern.TernException; import tern.server.AbstractTernServerTest; import tern.server.TernDef; import tern.server.TernPlugin; import tern.server.protocol.TernDoc; import tern.server.protocol.lint.TernLintQuery; public abstract class AbstractTernServerLintTest extends AbstractTernServerTest { @Override protected ITernProject createProject() { ITernProject project = super.createProject(); project.addPlugin(TernPlugin.lint); project.addLib(TernDef.browser); return project; } @Test public void lint() throws TernException { TernDoc doc = createDoc(); MockTernLintCollector messages = new MockTernLintCollector(); server.request(doc, messages); // {"messages":[{"message":"Unknown property // 'getElem'","from":9,"to":16,"severity":"warning","file":"myfile.js"}]} Assert.assertEquals(1, messages.size()); MockLintMessage message = messages.get(0); Assert.assertEquals("[lint]: Unknown property 'getElem'", message.message); Assert.assertNotNull(message.start); Assert.assertEquals(9L, message.start.longValue()); Assert.assertNotNull(message.end); Assert.assertEquals(16L, message.end.longValue()); Assert.assertEquals("warning", message.severity); Assert.assertEquals("myfile.js", message.file); } private TernDoc createDoc() throws TernException { String name = "myfile.js"; String text = "document.getElem"; TernDoc doc = new TernDoc(); doc.addFile(name, text, null, null); TernLintQuery query = TernLintQuery.create(TernPlugin.lint, false); query.setFile(name); doc.setQuery(query); return doc; } }