You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

SaneErrors.java 2.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. package com.vaadin.tests.components;
  2. import com.vaadin.server.VaadinRequest;
  3. import com.vaadin.ui.AbstractComponent;
  4. import com.vaadin.ui.Button;
  5. import com.vaadin.ui.Button.ClickEvent;
  6. import com.vaadin.ui.Button.ClickListener;
  7. import com.vaadin.ui.Label;
  8. import com.vaadin.ui.VerticalLayout;
  9. import com.vaadin.v7.ui.Table;
  10. import com.vaadin.v7.ui.Table.RowHeaderMode;
  11. public class SaneErrors extends AbstractReindeerTestUI {
  12. @Override
  13. protected void setup(VaadinRequest request) {
  14. final Button b = new Button("Show me my NPE!");
  15. b.addClickListener(event -> throwError());
  16. /*
  17. * Errors from "legacy variable changes"
  18. */
  19. final Table table = new Table();
  20. table.addItem("Show me my NPE!");
  21. table.setRowHeaderMode(RowHeaderMode.ID);
  22. table.addItemClickListener(event -> throwError());
  23. final VerticalLayout content = new VerticalLayout(b, table);
  24. /**
  25. * Button that shows reported exception for TB integration test
  26. */
  27. Button button = new Button("Collect exceptions", new ClickListener() {
  28. @Override
  29. public void buttonClick(ClickEvent event) {
  30. reportException(b, content);
  31. reportException(table, content);
  32. }
  33. private void reportException(final AbstractComponent b,
  34. final VerticalLayout content) {
  35. String message = b.getErrorMessage().getFormattedHtmlMessage();
  36. message = message.replaceAll(".", ".");
  37. message = message.substring(message.indexOf("h2>") + 3,
  38. message.indexOf("
"));
  39. Label label = new Label(message);
  40. content.addComponent(label);
  41. }
  42. });
  43. content.addComponent(button);
  44. setContent(content);
  45. }
  46. private void throwError() {
  47. Object o = null;
  48. o.getClass();
  49. }
  50. @Override
  51. protected String getTestDescription() {
  52. return "Vaadin should by default report exceptions relevant for the developer.";
  53. }
  54. @Override
  55. protected Integer getTicketNumber() {
  56. return 11599;
  57. }
  58. }