Ejemplo n.º 1
0
  @Test
  public void parseXml() {
    // @formatter:off
    sensei
        .assertParseXml(
            "<pobox>P.O. Box 1234;</pobox>"
                + "<ext>Apt, 11</ext>"
                + "<street>123 Main St</street>"
                + "<locality>Austin</locality>"
                + "<region>TX</region>"
                + "<code>12345</code>"
                + "<country>USA</country>")
        .run(is(withAllFields));

    sensei
        .assertParseXml(
            "<pobox>P.O. Box 1234;</pobox>"
                + "<locality>Austin</locality>"
                + "<region>TX</region>"
                + "<code>12345</code>"
                + "<country></country>")
        .run(is(withSomeFields));

    sensei.assertParseXml("").run(is(empty));
    // @formatter:on
  }
Ejemplo n.º 2
0
  @Test
  public void parseJson() {
    JCardValue value =
        JCardValue.structured(
            "P.O. Box 1234;", "Apt, 11", "123 Main St", "Austin", "TX", "12345", "USA");
    sensei.assertParseJson(value).run(is(withAllFields));

    value = JCardValue.structured("P.O. Box 1234;", "", "", "Austin", "TX", "12345", "");
    sensei.assertParseJson(value).run(is(withSomeFields));

    value = JCardValue.structured("", null, "", "", "", "", "");
    sensei.assertParseJson(value).run(is(empty));

    value = JCardValue.structured();
    sensei.assertParseJson(value).run(is(empty));

    value = JCardValue.structured("P.O. Box 1234;", "Apt, 11", "123 Main St", "Austin");
    sensei
        .assertParseJson(value)
        .run(
            new Check<Address>() {
              public void check(Address property) {
                assertEquals("P.O. Box 1234;", property.getPoBox());
                assertEquals("Apt, 11", property.getExtendedAddress());
                assertEquals("123 Main St", property.getStreetAddress());
                assertEquals("Austin", property.getLocality());
                assertNull(property.getRegion());
                assertNull(property.getPostalCode());
                assertNull(property.getCountry());
              }
            });
  }
Ejemplo n.º 3
0
  @Test
  public void parseHtml() {
    // @formatter:off
    sensei
        .assertParseHtml(
            "<div>"
                + "<span class=\"post-office-box\">P.O. Box 1234;</span>"
                + "<span class=\"extended-address\">Apt, 11</span>"
                + "<span class=\"street-address\">123 Main St</span>"
                + "<span class=\"locality\">Austin</span>"
                + "<span class=\"region\">TX</span>"
                + "<span class=\"postal-code\">12345</span>"
                + "<span class=\"country-name\">USA</span>"
                + "</div>")
        .run(is(withAllFields));

    sensei
        .assertParseHtml(
            "<div>"
                + "<span class=\"post-office-box\">P.O. Box 1234;</span>"
                + "<span class=\"locality\">Austin</span>"
                + "<span class=\"region\">TX</span>"
                + "<span class=\"postal-code\">12345</span>"
                + "</div>")
        .run(is(withSomeFields));

    sensei.assertParseHtml("<div></div>").run(is(empty));
    // @formatter:on
  }
Ejemplo n.º 4
0
  /**
   * If properties contain "PREF" parameters and they're being marshalled to 2.1/3.0, then it should
   * find the type with the lowest PREF value and add "TYPE=pref" to it.
   */
  @Test
  public void prepareParameters_pref_parameter() {
    // TODO move this test to VCardPropertyScribeTest (except for the "label" part)
    VCard vcard = new VCard();

    Address adr2 = new Address();
    adr2.setPref(2);
    vcard.addAddress(adr2);

    Address adr1 = new Address();
    adr1.setPref(1);
    vcard.addAddress(adr1);

    Address adr3 = new Address();
    vcard.addAddress(adr3);

    // 2.1 and 3.0 converts the lowest PREF parameter to "TYPE=pref", and removes all the rest
    sensei
        .assertPrepareParams(adr1)
        .versions(V2_1, V3_0)
        .vcard(vcard)
        .expected("TYPE", "pref")
        .run();
    sensei.assertPrepareParams(adr2).versions(V2_1, V3_0).vcard(vcard).run();
    sensei.assertPrepareParams(adr3).versions(V2_1, V3_0).vcard(vcard).run();

    // 4.0 keeps it
    sensei.assertPrepareParams(adr1).versions(V4_0).vcard(vcard).expected("PREF", "1").run();
    sensei.assertPrepareParams(adr2).versions(V4_0).vcard(vcard).expected("PREF", "2").run();
    sensei.assertPrepareParams(adr3).versions(V4_0).vcard(vcard).run();
  }
Ejemplo n.º 5
0
 @Test
 public void writeText() {
   sensei
       .assertWriteText(withAllFields)
       .run("P.O. Box 1234\\;;Apt\\, 11;123 Main St;Austin;TX;12345;USA");
   sensei.assertWriteText(withSomeFields).run("P.O. Box 1234\\;;;;Austin;TX;12345;");
   sensei.assertWriteText(empty).run(";;;;;;");
 }
Ejemplo n.º 6
0
 @Test
 public void parseText() {
   sensei
       .assertParseText("P.O. Box 1234\\;;Apt\\, 11;123 Main St;Austin;TX;12345;USA")
       .run(is(withAllFields));
   sensei.assertParseText("P.O. Box 1234\\;;;;Austin;TX;12345;").run(is(withSomeFields));
   sensei.assertParseText(";;;;;;").run(is(empty));
   sensei.assertParseText("").run(is(empty));
 }
Ejemplo n.º 7
0
  /**
   * If a property contains a "TYPE=pref" parameter and it's being marshalled to 4.0, it should
   * replace "TYPE=pref" with "PREF=1".
   */
  @Test
  public void prepareParameters_type_pref() {
    Address property = new Address();
    property.addType(AddressType.PREF);

    // 2.1 and 3.0 keep it
    sensei.assertPrepareParams(property).versions(V2_1, V3_0).expected("TYPE", "pref").run();

    // 4.0 converts it to "PREF=1"
    sensei.assertPrepareParams(property).versions(V4_0).expected("PREF", "1").run();
  }
Ejemplo n.º 8
0
  @Test
  public void prepareParameters_label() {
    Address property = new Address();
    property.setLabel("label");

    // 2.1 and 3.0 should remove it
    sensei.assertPrepareParams(property).versions(V2_1, V3_0).run();

    // 4.0 should keep it
    sensei.assertPrepareParams(property).versions(V4_0).expected("LABEL", "label").run();
  }
Ejemplo n.º 9
0
 @Test
 public void writeJson() {
   sensei
       .assertWriteJson(withAllFields)
       .run(
           JCardValue.structured(
               "P.O. Box 1234;", "Apt, 11", "123 Main St", "Austin", "TX", "12345", "USA"));
   sensei
       .assertWriteJson(withSomeFields)
       .run(JCardValue.structured("P.O. Box 1234;", "", "", "Austin", "TX", "12345", ""));
   sensei.assertWriteJson(empty).run(JCardValue.structured("", "", "", "", "", "", ""));
 }
Ejemplo n.º 10
0
  @Test
  public void parseHtml() {
    Email expected = new Email("*****@*****.**");

    // @formatter:off
    sensei.assertParseHtml("<a href=\"mailto:[email protected]\">Email Me</a>").run(expected);

    sensei.assertParseHtml("<a href=\"MAILTO:[email protected]\">Email Me</a>").run(expected);

    sensei
        .assertParseHtml("<a href=\"http://www.example.com\">[email protected]</a>")
        .run(expected);

    sensei.assertParseHtml("<div>[email protected]</div>").run(expected);
    // @formatter:on
  }
Ejemplo n.º 11
0
  @Test
  public void prepareParameters_pref_parameter() {
    Email property = new Email("*****@*****.**");
    property.setPref(1);

    VCard vcard = new VCard();
    vcard.addEmail(property);

    sensei
        .assertPrepareParams(property)
        .versions(V2_1, V3_0)
        .vcard(vcard)
        .expected("TYPE", "pref")
        .run();
    sensei.assertPrepareParams(property).versions(V4_0).vcard(vcard).expected("PREF", "1").run();
  }
Ejemplo n.º 12
0
  @Test
  public void prepareParameters_type_pref() {
    Email property = new Email("*****@*****.**");
    property.addType(EmailType.PREF);

    sensei.assertPrepareParams(property).versions(V2_1, V3_0).expected("TYPE", "pref").run();
    sensei.assertPrepareParams(property).versions(V4_0).expected("PREF", "1").run();
  }
 @Test
 public void parseXml_no_child_elements() {
   sensei
       .assertParseXml("value")
       .warnings(1)
       .run(
           new Check<TestProperty>() {
             public void check(TestProperty property) {
               assertEquals("value", property.value);
               assertNull(property.parsedDataType);
             }
           });
 }
 @Test
 public void parseHtml() {
   sensei
       .assertParseHtml("<div>value<del>ignore</del>value</div>")
       .warnings(1)
       .run(
           new Check<TestProperty>() {
             public void check(TestProperty property) {
               assertEquals("valuevalue", property.value);
               assertNull(property.parsedDataType);
             }
           });
 }
 @Test
 public void parseXml_unknown() {
   sensei
       .assertParseXml("<unknown>value</unknown>")
       .warnings(1)
       .run(
           new Check<TestProperty>() {
             public void check(TestProperty property) {
               assertEquals("value", property.value);
               assertEquals(null, property.parsedDataType);
             }
           });
 }
 @Test
 public void parseXml_no_xcard_element() {
   sensei
       .assertParseXml(
           "<one xmlns=\"http://example.com\">1</one><two xmlns=\"http://example.com\">2</two>")
       .warnings(1)
       .run(
           new Check<TestProperty>() {
             public void check(TestProperty property) {
               assertEquals("12", property.value);
               assertNull(property.parsedDataType);
             }
           });
 }
Ejemplo n.º 17
0
  @Test
  public void parseHtml_types() {
    Email expected = new Email("*****@*****.**");
    expected.addType(EmailType.HOME);

    // @formatter:off
    sensei
        .assertParseHtml(
            "<a href=\"mailto:[email protected]\">"
                + "<span class=\"type\">Home</span> Email"
                + "</a>")
        .run(expected);
    // @formatter:on
  }
 @Test
 public void parseJson_list() {
   JCardValue value = JCardValue.multi("value1", "val,;ue2");
   sensei
       .assertParseJson(value)
       .dataType(VCardDataType.TEXT)
       .warnings(1)
       .run(
           new Check<TestProperty>() {
             public void check(TestProperty property) {
               assertEquals("value1,val\\,\\;ue2", property.value);
             }
           });
 }
Ejemplo n.º 19
0
  @Test
  public void writeXml() {
    // @formatter:off
    sensei
        .assertWriteXml(withAllFields)
        .run(
            "<pobox>P.O. Box 1234;</pobox>"
                + "<ext>Apt, 11</ext>"
                + "<street>123 Main St</street>"
                + "<locality>Austin</locality>"
                + "<region>TX</region>"
                + "<code>12345</code>"
                + "<country>USA</country>");

    sensei
        .assertWriteXml(withSomeFields)
        .run(
            "<pobox>P.O. Box 1234;</pobox>"
                + "<ext/>"
                + "<street/>"
                + "<locality>Austin</locality>"
                + "<region>TX</region>"
                + "<code>12345</code>"
                + "<country/>");

    sensei
        .assertWriteXml(empty)
        .run(
            "<pobox/>"
                + "<ext/>"
                + "<street/>"
                + "<locality/>"
                + "<region/>"
                + "<code/>"
                + "<country/>");
    // @formatter:on
  }
 @Test
 public void parseJson_structured() {
   JCardValue value =
       JCardValue.structured(null, "value1", "val,;ue2", Arrays.asList("value3", "value4"));
   sensei
       .assertParseJson(value)
       .dataType(VCardDataType.TEXT)
       .warnings(1)
       .run(
           new Check<TestProperty>() {
             public void check(TestProperty property) {
               assertEquals(";value1;val\\,\\;ue2;value3,value4", property.value);
             }
           });
 }
 @Test
 public void parseText() {
   final VCardParameters params = new VCardParameters();
   sensei
       .assertParseText("value")
       .dataType(VCardDataType.TEXT)
       .warnings(1)
       .params(params)
       .run(
           new Check<TestProperty>() {
             public void check(TestProperty property) {
               assertEquals("value", property.value);
               assertEquals(VCardDataType.TEXT, property.parsedDataType);
               assertSame(params, property.getParameters());
             }
           });
 }
 @Test
 public void parseJson_single() {
   final VCardParameters params = new VCardParameters();
   JCardValue value = JCardValue.single("value");
   sensei
       .assertParseJson(value)
       .dataType(VCardDataType.TEXT)
       .params(params)
       .warnings(1)
       .run(
           new Check<TestProperty>() {
             public void check(TestProperty property) {
               assertEquals("value", property.value);
               assertSame(params, property.getParameters());
             }
           });
 }
  @Test
  public void parseXml() {
    final VCardParameters params = new VCardParameters();

    // @formatter:off
    sensei
        .assertParseXml(
            "<ignore xmlns=\"http://example.com\">ignore-me</ignore>"
                + "<integer>value</integer>"
                + "<text>ignore-me</text>")
        .params(params)
        .warnings(1)
        .run(
            new Check<TestProperty>() {
              public void check(TestProperty property) {
                assertEquals("value", property.value);
                assertEquals(VCardDataType.INTEGER, property.parsedDataType);
                assertSame(params, property.getParameters());
              }
            });
    // @formatter:on
  }
Ejemplo n.º 24
0
 @Test
 public void parseHtml_type_parameters() {
   // @formatter:off
   sensei
       .assertParseHtml(
           "<div>"
               + "<span class=\"type\">home</span>"
               + "<span class=\"type\">postal</span>"
               + "<span class=\"type\">other</span>"
               + "<span class=\"post-office-box\">P.O. Box 1234;</span>"
               + "<span class=\"extended-address\">Apt, 11</span>"
               + "<span class=\"street-address\">123 Main St</span>"
               + "<span class=\"locality\">Austin</span>"
               + "<span class=\"region\">TX</span>"
               + "<span class=\"postal-code\">12345</span>"
               + "<span class=\"country-name\">USA</span>"
               + "</div>")
       .run(
           new Check<Address>() {
             public void check(Address property) {
               assertEquals("P.O. Box 1234;", property.getPoBox());
               assertEquals("Apt, 11", property.getExtendedAddress());
               assertEquals("123 Main St", property.getStreetAddress());
               assertEquals("Austin", property.getLocality());
               assertEquals("TX", property.getRegion());
               assertEquals("12345", property.getPostalCode());
               assertEquals("USA", property.getCountry());
               assertSetEquals(
                   property.getTypes(),
                   AddressType.HOME,
                   AddressType.POSTAL,
                   AddressType.get("other"));
             }
           });
   // @formatter:on
 }
Ejemplo n.º 25
0
 @Test
 public void parseText() {
   Email expected = new Email("*****@*****.**");
   sensei.assertParseText("*****@*****.**").run(expected);
 }
 @Test
 public void writeJson() {
   TestProperty property = new TestProperty("value");
   sensei.assertWriteJson(property).run("value");
 }
 @Test
 public void dataType_default() {
   TestProperty property = new TestProperty("value");
   sensei.assertDataType(property).run(VCardDataType.TEXT);
 }
 @Test
 public void writeXml() {
   TestProperty prop = new TestProperty("value");
   sensei.assertWriteXml(prop).run("<text>value</text>");
 }