Package qwickie.proposal

Source Code of qwickie.proposal.QWickieHtmlProposalComputerTest

package qwickie.proposal;

import static org.junit.Assert.assertEquals;

import java.io.InputStream;
import java.util.List;

import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.jface.text.Document;
import org.eclipse.jface.text.IDocument;
import org.eclipse.jface.text.ITextViewer;
import org.eclipse.jface.text.TextViewer;
import org.eclipse.jface.text.contentassist.CompletionProposal;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.ide.IDE;
import org.eclipse.wst.sse.ui.contentassist.CompletionProposalInvocationContext;
import org.junit.Before;
import org.junit.Test;

public class QWickieHtmlProposalComputerTest {
  final IWorkbench workbench = PlatformUI.getWorkbench();
  final IWorkbenchPage activePage = workbench.getActiveWorkbenchWindow().getActivePage();
  private final IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject("testproject");
  private final IFile htmlFile = project.getFile("src/main/java/org/qwickie/test/project/HomePage.html");
  private IDocument htmlDocument;

  @Before
  public void setUp() throws Exception {
    InputStream contents = htmlFile.getContents(true);
    byte[] b = new byte[contents.available()];
    contents.read(b);
    contents.close();
    htmlDocument = new Document(new String(b));
  }

  @Test
  public void testHtmlProposal() {
    long start = System.nanoTime();

    QWickieHtmlProposalComputer proposal = new QWickieHtmlProposalComputer();
    proposal.sessionStarted();

    ITextViewer viewer = new TextViewer(new Shell(), 0);
    viewer.setDocument(htmlDocument);
    try {
      IDE.openEditor(activePage, htmlFile);
    } catch (PartInitException e) {
    }

    CompletionProposalInvocationContext context = new CompletionProposalInvocationContext(viewer, 0);
    IProgressMonitor monitor = new NullProgressMonitor();
    assertEquals(proposal.computeCompletionProposals(context, monitor).size(), 0);

    context = new CompletionProposalInvocationContext(viewer, 526);
    List<CompletionProposal> proposals = proposal.computeCompletionProposals(context, monitor);
    assertEquals(7, proposals.size());

    assertEquals("customer", proposals.get(0).getDisplayString());
    assertEquals("message", proposals.get(1).getDisplayString());
    assertEquals("some.message", proposals.get(2).getDisplayString());
    assertEquals("message2", proposals.get(3).getDisplayString());
    assertEquals("message 2", proposals.get(4).getDisplayString());
    assertEquals("testMessageInXML", proposals.get(5).getDisplayString());
    assertEquals("date", proposals.get(6).getDisplayString());

    activePage.closeAllEditors(false);

    proposal.sessionEnded();

    System.out.println("testHtmlProposal:\t\t" + (System.nanoTime() - start));
  }

}
TOP

Related Classes of qwickie.proposal.QWickieHtmlProposalComputerTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.