コード例 #1
0
  public void testIsDomValue() throws Throwable {
    final XmlFile file = (XmlFile) createFile("a.xml", "<b>42</b>");
    getDomManager()
        .registerFileDescription(
            new DomFileDescription<MyElement>(MyElement.class, "b") {

              @Override
              public boolean isMyFile(@NotNull final XmlFile file, final Module module) {
                return /*super.isMyFile(file, module) && */ file.getText().contains("239");
              }
            },
            myDisposable);

    assertFalse(getDomManager().isDomFile(file));
    assertNull(getDomManager().getFileElement(file));

    new WriteCommandAction(getProject()) {
      @Override
      protected void run(@NotNull Result result) throws Throwable {
        file.getDocument().getRootTag().getValue().setText("239");
      }
    }.execute();
    assertTrue(getDomManager().isDomFile(file));
    final DomFileElementImpl<MyElement> root = getDomManager().getFileElement(file);
    assertNotNull(root);
    final MyElement child = root.getRootElement().getChild();
    assertTrue(root.isValid());
    assertTrue(child.isValid());

    new WriteCommandAction(getProject()) {
      @Override
      protected void run(@NotNull Result result) throws Throwable {
        file.getDocument().getRootTag().getValue().setText("57121");
      }
    }.execute();
    assertFalse(getDomManager().isDomFile(file));
    assertNull(getDomManager().getFileElement(file));
    assertFalse(root.isValid());
    assertFalse(child.isValid());
  }
コード例 #2
0
 public void testChangeCustomDomness() throws Throwable {
   getDomManager()
       .registerFileDescription(
           new DomFileDescription<MyElement>(MyElement.class, "xxx") {
             @Override
             public boolean isMyFile(@NotNull final XmlFile file, @Nullable final Module module) {
               return file.getText().contains("foo");
             }
           },
           myDisposable);
   final XmlFile file = (XmlFile) createFile("xxx.xml", "<xxx zzz=\"foo\"><boy/><boy/><xxx/>");
   final MyElement boy =
       getDomManager().getFileElement(file, MyElement.class).getRootElement().getBoys().get(0);
   new WriteCommandAction(getProject()) {
     @Override
     protected void run(@NotNull Result result) throws Throwable {
       file.getDocument().getRootTag().setAttribute("zzz", "bar");
     }
   }.execute();
   assertFalse(getDomManager().isDomFile(file));
   assertFalse(boy.isValid());
 }