public void testNoExporterForThatWikitype() {
    // what's the result if the wikitype has no exporter

    // still using the default directory, but we have to explicitly set tikiwiki
    // in the model, 'cause we can't select a non-existant ite,
    wikitypes.setModel(new DefaultComboBoxModel(new String[] {"tikiwiki", "mediawiki"}));
    wikitypes.setSelectedItem("tikiwiki"); // not exportable at this time
    tester.exportWiki();
    ExportWikiListener.Feedback expected = ExportWikiListener.Feedback.NO_EXPORTER_FILE;
    assertEquals(expected, tester.getFeedback());
  }
  public void testExportWiki() {
    this.dir = CONF_LOCAL;
    setupModel(this.dir);
    wikitypes.setSelectedItem(
        "mediawiki"); // I'm pretty clear on what the mediawiki exporter should do.

    // check that existing exported dir doesn't exist
    String EXPORT_DIR = "/Users/laura/Desktop/exported_mediawiki_pages";
    File exportFile = new File(EXPORT_DIR);
    if (exportFile.exists()) {
      String message = "You need to delete '" + EXPORT_DIR + "' directory, first.";
      log.error(message);
      fail(message);
    }

    // test pre-export feedback
    ExportWikiListener.Feedback expected = ExportWikiListener.Feedback.NONE;
    assertEquals(expected, tester.getFeedback());

    // XXX Remember we need the database to be on in order for the export to work.

    // test exporting
    tester.exportWiki();

    // test directory was created.
    assertTrue(exportFile.exists()); // exists
    assertTrue(exportFile.isDirectory()); // is a dir

    // test that it has contents
    String[] exportChildren = exportFile.list();
    int numExportChildren = exportChildren.length;
    assertTrue(numExportChildren > 0);

    // look for at least one specific file that should be there
    boolean found = false;
    for (String child : exportChildren) {
      File childFile = new File(EXPORT_DIR + File.separator + child);
      assertTrue(childFile.exists());

      // look for the Pages directory
      if (child.equals("Pages")) {
        assertTrue(childFile.exists());
        assertTrue(childFile.isDirectory());
        found = true;
        break;
      }
    }
    assertTrue("No Pages directory.", found);

    // what's the result for a succesful export
    expected = ExportWikiListener.Feedback.OK;
    assertEquals(expected, tester.getFeedback());
  }
 public void testDbConnectionRefused() {
   // what's the result if the db connection is refused
   String test = "dbtest";
   setupSettingsTest(test);
   ExportWikiListener.Feedback expected = ExportWikiListener.Feedback.DB_FAILURE;
   assertEquals(expected, tester.getFeedback());
 }
  /**
   * helper method to test a particular file's bad setting
   *
   * @param test identifying string for the particular file
   */
  private void setupSettingsTest(String test) {
    this.dir = TEST_EXPORTSETTINGS_DIR; // this is where our test prop files will live
    // we've changed the dir. the model has to be reset
    setupModel(this.dir);
    wikitypes.setSelectedItem(test); // looks for exporter.dbtest.properties

    tester.exportWiki();
  }
  public void testBadSettings() {
    // what's the result if any of the non-db settings are bad
    String test;
    ExportWikiListener.Feedback expected;
    // bad exporter class
    test = "badclass";
    expected = ExportWikiListener.Feedback.BAD_EXPORTER_CLASS;
    setupSettingsTest(test);
    assertEquals(expected, tester.getFeedback());

    // bad db name
    test = "badDbName";
    expected = ExportWikiListener.Feedback.DB_FAILURE;
    setupSettingsTest(test);
    assertEquals(expected, tester.getFeedback());

    // bad dbUrl
    test = "badDbUrl";
    expected = ExportWikiListener.Feedback.DB_FAILURE;
    setupSettingsTest(test);
    assertEquals(expected, tester.getFeedback());

    // bad driver
    test = "badDriver";
    expected = ExportWikiListener.Feedback.DB_DRIVER_FAILURE;
    setupSettingsTest(test);
    assertEquals(expected, tester.getFeedback());

    // bad login
    test = "badLogin";
    expected = ExportWikiListener.Feedback.DB_FAILURE;
    setupSettingsTest(test);
    assertEquals(expected, tester.getFeedback());

    // bad password
    test = "badPass";
    expected = ExportWikiListener.Feedback.DB_FAILURE;
    setupSettingsTest(test);
    assertEquals(expected, tester.getFeedback());

    // bad prefix
    test = "badPrefix";
    expected = ExportWikiListener.Feedback.DB_FAILURE;
    setupSettingsTest(test);
    assertEquals(expected, tester.getFeedback());
  }