Пример #1
0
  @Test
  public void testRemoveVerifyListenerUnregistersUntypedEvents() {
    VerifyListener listener = mock(VerifyListener.class);
    text.addVerifyListener(listener);

    text.removeVerifyListener(listener);

    assertFalse(text.isListening(SWT.Verify));
  }
Пример #2
0
  @Test
  public void testVerifyEvent() {
    VerifyListener verifyListener;
    final java.util.List<TypedEvent> log = new ArrayList<TypedEvent>();
    text.addModifyListener(
        new ModifyListener() {
          public void modifyText(ModifyEvent event) {
            log.add(event);
          }
        });
    text.addVerifyListener(
        new VerifyListener() {
          public void verifyText(VerifyEvent event) {
            assertEquals('\0', event.character);
            assertEquals(0, event.keyCode);
            log.add(event);
          }
        });

    // VerifyEvent is also sent when setting text to the already set value
    log.clear();
    text.setText("");
    assertEquals(2, log.size());
    assertEquals(VerifyEvent.class, log.get(0).getClass());
    assertEquals(ModifyEvent.class, log.get(1).getClass());

    // Test verifyListener that prevents (doit=false) change
    text.setText("");
    log.clear();
    verifyListener =
        new VerifyListener() {
          public void verifyText(VerifyEvent event) {
            event.doit = false;
          }
        };
    text.addVerifyListener(verifyListener);
    text.setText("other");
    assertEquals(1, log.size());
    assertEquals(VerifyEvent.class, log.get(0).getClass());
    assertEquals("", text.getText());
    text.removeVerifyListener(verifyListener);

    // Test verifyListener that manipulates text
    text.setText("");
    log.clear();
    verifyListener =
        new VerifyListener() {
          public void verifyText(VerifyEvent event) {
            event.text = "manipulated";
          }
        };
    text.addVerifyListener(verifyListener);
    text.setText("other");
    assertEquals(2, log.size());
    assertEquals(VerifyEvent.class, log.get(0).getClass());
    assertEquals(ModifyEvent.class, log.get(1).getClass());
    assertEquals("manipulated", text.getText());
    text.removeVerifyListener(verifyListener);

    // Ensure that VerifyEvent#start and #end denote the positions of the old
    // text and #text denotes the text to be set
    String oldText = "old";
    text.setText(oldText);
    log.clear();
    String newText = oldText + "changed";
    text.setText(newText);
    assertEquals(2, log.size());
    assertEquals(VerifyEvent.class, log.get(0).getClass());
    VerifyEvent verifyEvent = (VerifyEvent) log.get(0);
    assertEquals(0, verifyEvent.start);
    assertEquals(oldText.length(), verifyEvent.end);
    assertEquals(newText, verifyEvent.text);
    assertEquals(ModifyEvent.class, log.get(1).getClass());

    // Ensure that VerifyEvent gets fired when setEditable was set to false
    text.setText("");
    text.setEditable(false);
    log.clear();
    text.setText("whatever");
    assertEquals(2, log.size());
    assertEquals(VerifyEvent.class, log.get(0).getClass());
    assertEquals(ModifyEvent.class, log.get(1).getClass());
    text.setEditable(true);

    // Ensure that VerifyEvent#text denotes the text to be set
    // and not the cut by textLimit one
    text.setTextLimit(5);
    String sampleText = "sample_text";
    log.clear();
    text.setText(sampleText);
    assertEquals(2, log.size());
    assertEquals(VerifyEvent.class, log.get(0).getClass());
    verifyEvent = (VerifyEvent) log.get(0);
    assertEquals(sampleText, verifyEvent.text);
  }
 @Override
 public void widgetDisposed(DisposeEvent e) {
   text.removeVerifyListener(verifyListener);
   text.removeFocusListener(focusListener);
   text.removeDisposeListener(disposeListener);
 }