Package tests.net.sf.jabref.gui

Source Code of tests.net.sf.jabref.gui.AutoCompleterTest

package tests.net.sf.jabref.gui;

import java.awt.event.ActionEvent;
import java.io.File;

import junit.framework.TestCase;
import net.sf.jabref.BibtexDatabase;
import net.sf.jabref.BibtexEntry;
import net.sf.jabref.EntryEditor;
import net.sf.jabref.FieldEditor;
import net.sf.jabref.FieldTextArea;
import net.sf.jabref.Globals;
import net.sf.jabref.JabRef;
import net.sf.jabref.JabRefPreferences;
import net.sf.jabref.autocompleter.AbstractAutoCompleter;
import net.sf.jabref.autocompleter.AutoCompleterFactory;
import net.sf.jabref.autocompleter.DefaultAutoCompleter;
import net.sf.jabref.autocompleter.NameFieldAutoCompleter;
import net.sf.jabref.imports.ParserResult;
import tests.net.sf.jabref.testutils.TestUtils;

/**
*
* @author kahlert, cordes
*
*/
public class AutoCompleterTest extends TestCase {

  private static final String OTHER_FIELD = "title";
  private static final String AUTHOR_FIELD = "author";
  private static final String CROSSREF_FIELD = "crossref";
  private static final String ENTIRE_FIELD = "journal";

  public static final String PATH_TO_TEST_BIBTEX = "src/tests/net/sf/jabref/bibtexFiles/test.bib";

  public void testAutoCompleterFactory() {
    AbstractAutoCompleter autoCompleter = AutoCompleterFactory.getFor(AUTHOR_FIELD);
    assertTrue(autoCompleter instanceof NameFieldAutoCompleter);

    autoCompleter = AutoCompleterFactory.getFor(OTHER_FIELD);
    assertTrue(autoCompleter instanceof DefaultAutoCompleter);
  }

  public void testDefaultAutoCompleter() {
    AbstractAutoCompleter autoCompleter = AutoCompleterFactory.getFor(OTHER_FIELD);
    for (BibtexEntry entry : getDatabse().getEntries()) {
      autoCompleter.addBibtexEntry(entry);
    }
    assertEquals("authentication", autoCompleter.complete("authentication")[0]);
    assertEquals(1, autoCompleter.complete("authentication").length);
    assertEquals("authentication", autoCompleter.complete("aut")[0]);
    assertEquals(1, autoCompleter.complete("aut").length);
    assertEquals("context", autoCompleter.complete("con")[0]);
    assertEquals(1, autoCompleter.complete("con").length);
    assertEquals(0, autoCompleter.complete("osta").length);
    assertEquals(0, autoCompleter.complete("osta").length);
  }

  public void testCrossRefCompleter() {
    AbstractAutoCompleter autoCompleter = AutoCompleterFactory.getFor(CROSSREF_FIELD);
    for (BibtexEntry entry : getDatabse().getEntries()) {
      autoCompleter.addBibtexEntry(entry);
    }
    assertEquals("1102917", autoCompleter.complete("1102917")[0]);
    assertEquals(1, autoCompleter.complete("1102917").length);
    assertEquals("1102917", autoCompleter.complete("11029")[0]);
    assertEquals(1, autoCompleter.complete("11029").length);
    assertEquals(0, autoCompleter.complete("osta").length);
    assertEquals(0, autoCompleter.complete("osta").length);
  }

  public void testEntireFieldCompleter() {
    AbstractAutoCompleter autoCompleter = AutoCompleterFactory.getFor(ENTIRE_FIELD);
    for (BibtexEntry entry : getDatabse().getEntries()) {
      autoCompleter.addBibtexEntry(entry);
    }
    assertEquals("Personal Ubiquitous Comput.", autoCompleter.complete("Personal Ubiquitous Comput.")[0]);
    assertEquals(1, autoCompleter.complete("Personal Ubiquitous Comput.").length);
    assertEquals("Personal Ubiquitous Comput.", autoCompleter.complete("Pers")[0]);
    assertEquals(1, autoCompleter.complete("Pers").length);
    assertEquals(0, autoCompleter.complete("osta").length);
    assertEquals(0, autoCompleter.complete("osta").length);
  }

  public void testNameFieldCompleter() {
    AbstractAutoCompleter autoCompleter = AutoCompleterFactory.getFor(AUTHOR_FIELD);
    for (BibtexEntry entry : getDatabse().getEntries()) {
      autoCompleter.addBibtexEntry(entry);
    }
    assertEquals("Kostakos, V.", autoCompleter.complete("Kostakos")[0]);
    assertEquals(2, autoCompleter.complete("Kostakos").length);
    assertEquals("Kostakos, V.", autoCompleter.complete("Kosta")[0]);
    assertEquals(2, autoCompleter.complete("Kosta").length);
    assertEquals("Kostakos, Vassilis", autoCompleter.complete("Kostakos, Va")[0]);
    assertEquals(1, autoCompleter.complete("Kostakos, Va").length);
    assertEquals("Vassilis Kostakos", autoCompleter.complete("Va")[0]);
    assertEquals(1, autoCompleter.complete("Va").length);
    assertEquals(0, autoCompleter.complete("osta").length);
    assertEquals(0, autoCompleter.complete("osta").length);

    assertEquals("Eric von Hippel", autoCompleter.complete("Eric")[0]);
    assertEquals(1, autoCompleter.complete("Eric").length);
    assertEquals("von Hippel, E.", autoCompleter.complete("von")[0]);
    assertEquals(2, autoCompleter.complete("von").length);

    assertEquals("Reagle, Jr., J. M.", autoCompleter.complete("Reagle")[0]);
    assertEquals(2, autoCompleter.complete("Reagle").length);
    assertEquals("Reagle, Jr., Joseph M.", autoCompleter.complete("Reagle, Jr., Jo")[0]);
    assertEquals(1, autoCompleter.complete("Reagle, Jr., Jo").length);
    assertEquals("Joseph M. Reagle, Jr.", autoCompleter.complete("Joseph")[0]);
    assertEquals(1, autoCompleter.complete("Joseph").length);

    assertEquals("van den Huevel, Jr., J. A.", autoCompleter.complete("van den")[0]);
    assertEquals(2, autoCompleter.complete("van den").length);
    assertEquals("Johan A van den Huevel, Jr.", autoCompleter.complete("Joh")[0]);
    assertEquals(1, autoCompleter.complete("Joh").length);

    assertEquals("Jr. Sherry, John F.", autoCompleter.complete("Jr. S")[0]);
    assertEquals(1, autoCompleter.complete("Jr.").length);
    assertEquals("Sherry, John F., J.", autoCompleter.complete("Sherry")[0]);
    assertEquals(2, autoCompleter.complete("Sherry").length);
  }

  public void testEntryEditorForNameFieldAutoCompleter() {
    // construct an EntryEditor ...
    JabRef jabref = TestUtils.getInitializedJabRef();
    BibtexEntry bibtexEntry = new BibtexEntry();
    bibtexEntry.setField("author", "Brigitte Laurant");
    FieldEditor authorTextField = new FieldTextArea("author", "Hans Meiser");
    EntryEditor editor = new EntryEditor(jabref.jrf, jabref.jrf.basePanel(), bibtexEntry);
    // perform action ...
    editor.storeFieldAction.actionPerformed(new ActionEvent(authorTextField, 0, ""));
    // test content of stored words in autocompleter ...
    AbstractAutoCompleter autoCompleter = jabref.jrf.basePanel().getAutoCompleter("author");
    assertTrue(autoCompleter.indexContainsWord("Hans Meiser"));
    assertTrue(autoCompleter.indexContainsWord("Meiser, Hans"));

    TestUtils.closeJabRef();
  }

  public void testEntryEditorForFieldAnotherAutoCompleter() {
    // construct an EntryEditor ...
    JabRef jabref = TestUtils.getInitializedJabRef();
    BibtexEntry bibtexEntry = new BibtexEntry();
    bibtexEntry.setField("journal", "Testtext");
    FieldEditor authorTextField = new FieldTextArea("journal", "New Testtext");
    EntryEditor editor = new EntryEditor(jabref.jrf, jabref.jrf.basePanel(), bibtexEntry);
    // perform action ...
    editor.storeFieldAction.actionPerformed(new ActionEvent(authorTextField, 0, ""));
    // test content of stored words in autocompleter ...
    AbstractAutoCompleter autoCompleter = jabref.jrf.basePanel().getAutoCompleter("journal");
    assertTrue(autoCompleter.indexContainsWord("New Testtext"));

    TestUtils.closeJabRef();
  }

  private BibtexDatabase getDatabse() {
    Globals.prefs = JabRefPreferences.getInstance();
    File fileToLoad = new File(PATH_TO_TEST_BIBTEX);
    ParserResult pr = JabRef.openBibFile(fileToLoad.getPath(), true);
    BibtexDatabase filledDatabase = pr.getDatabase();
    return filledDatabase;
  }
}
TOP

Related Classes of tests.net.sf.jabref.gui.AutoCompleterTest

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.