Ejemplo n.º 1
0
  public void testNbmWithExternal() throws Exception {
    String moduleCNB = "org.netbeans.modules.mymodule";
    String moduleReleaseVersion = "1";
    String moduleImplVersion = "2";
    String moduleSpecVersion = "1.0";

    prepareNBM(moduleCNB, moduleReleaseVersion, moduleImplVersion, moduleSpecVersion, false, null);

    writeCatalog();
    UpdateUnitProviderFactory.getDefault().refreshProviders(null, true);
    OperationContainer<InstallSupport> installContainer = OperationContainer.createForInstall();
    UpdateUnit moduleUnit = getUpdateUnit(moduleCNB);
    assertNull("cannot be installed", moduleUnit.getInstalled());
    UpdateElement moduleElement = getAvailableUpdate(moduleUnit, 0);
    assertEquals(moduleElement.getSpecificationVersion(), moduleSpecVersion);
    OperationInfo<InstallSupport> independentInfo = installContainer.add(moduleElement);
    assertNotNull(independentInfo);
    doInstall(installContainer);

    File module = new File(new File(getWorkDir(), "modules"), "org-netbeans-modules-mymodule.jar");
    assertTrue("module file exists", module.exists());
    assertTrue("module was not installed from NBM external", moduleUnit.getInstalled() != null);
    File ext =
        new File(new File(getWorkDir(), "modules"), "org-netbeans-modules-mymodule.jar.external");
    assertFalse("Ext file is not written", ext.exists());
    File utf =
        new File(new File(getWorkDir(), "update_tracking"), "org-netbeans-modules-mymodule.xml");
    assertTrue("Update tracking exists", utf.exists());
    String content;
    {
      byte[] arr = new byte[(int) utf.length()];
      FileInputStream is = new FileInputStream(utf);
      is.read(arr);
      is.close();
      content = new String(arr);
    }
    if (!content.contains("\"modules/org-netbeans-modules-mymodule.jar\"")) {
      fail("Wrong content:\n" + content);
    }
    if (content.contains("\"modules/org-netbeans-modules-mymodule.jar.external\"")) {
      fail("Wrong content:\n" + content);
    }
    if (!content.contains("crc=\"" + UpdateTracking.getFileCRC(module) + "\"")) {
      fail("Wrong content:\n" + content);
    }
  }