mirror of
https://github.com/starovoid/rxing.git
synced 2026-07-26 20:32:34 +00:00
moved java files for pre-convert
This commit is contained in:
@@ -0,0 +1,250 @@
|
||||
/*
|
||||
* Copyright 2007 ZXing authors
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.google.zxing.client.result;
|
||||
|
||||
import com.google.zxing.BarcodeFormat;
|
||||
import com.google.zxing.Result;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.text.DateFormat;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Locale;
|
||||
import java.util.TimeZone;
|
||||
|
||||
/**
|
||||
* Tests {@link CalendarParsedResult}.
|
||||
*
|
||||
* @author Sean Owen
|
||||
*/
|
||||
public final class CalendarParsedResultTestCase extends Assert {
|
||||
|
||||
private static final double EPSILON = 1.0E-10;
|
||||
|
||||
private static DateFormat makeGMTFormat() {
|
||||
DateFormat format = new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'", Locale.ENGLISH);
|
||||
format.setTimeZone(TimeZone.getTimeZone("GMT"));
|
||||
return format;
|
||||
}
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
Locale.setDefault(Locale.ENGLISH);
|
||||
TimeZone.setDefault(TimeZone.getTimeZone("GMT"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testStartEnd() {
|
||||
doTest(
|
||||
"BEGIN:VCALENDAR\r\nBEGIN:VEVENT\r\n" +
|
||||
"DTSTART:20080504T123456Z\r\n" +
|
||||
"DTEND:20080505T234555Z\r\n" +
|
||||
"END:VEVENT\r\nEND:VCALENDAR",
|
||||
null, null, null, "20080504T123456Z", "20080505T234555Z");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testNoVCalendar() {
|
||||
doTest(
|
||||
"BEGIN:VEVENT\r\n" +
|
||||
"DTSTART:20080504T123456Z\r\n" +
|
||||
"DTEND:20080505T234555Z\r\n" +
|
||||
"END:VEVENT",
|
||||
null, null, null, "20080504T123456Z", "20080505T234555Z");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testStart() {
|
||||
doTest(
|
||||
"BEGIN:VCALENDAR\r\nBEGIN:VEVENT\r\n" +
|
||||
"DTSTART:20080504T123456Z\r\n" +
|
||||
"END:VEVENT\r\nEND:VCALENDAR",
|
||||
null, null, null, "20080504T123456Z", null);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDuration() {
|
||||
doTest(
|
||||
"BEGIN:VCALENDAR\r\nBEGIN:VEVENT\r\n" +
|
||||
"DTSTART:20080504T123456Z\r\n" +
|
||||
"DURATION:P1D\r\n" +
|
||||
"END:VEVENT\r\nEND:VCALENDAR",
|
||||
null, null, null, "20080504T123456Z", "20080505T123456Z");
|
||||
doTest(
|
||||
"BEGIN:VCALENDAR\r\nBEGIN:VEVENT\r\n" +
|
||||
"DTSTART:20080504T123456Z\r\n" +
|
||||
"DURATION:P1DT2H3M4S\r\n" +
|
||||
"END:VEVENT\r\nEND:VCALENDAR",
|
||||
null, null, null, "20080504T123456Z", "20080505T143800Z");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSummary() {
|
||||
doTest(
|
||||
"BEGIN:VCALENDAR\r\nBEGIN:VEVENT\r\n" +
|
||||
"SUMMARY:foo\r\n" +
|
||||
"DTSTART:20080504T123456Z\r\n" +
|
||||
"END:VEVENT\r\nEND:VCALENDAR",
|
||||
null, "foo", null, "20080504T123456Z", null);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testLocation() {
|
||||
doTest(
|
||||
"BEGIN:VCALENDAR\r\nBEGIN:VEVENT\r\n" +
|
||||
"LOCATION:Miami\r\n" +
|
||||
"DTSTART:20080504T123456Z\r\n" +
|
||||
"END:VEVENT\r\nEND:VCALENDAR",
|
||||
null, null, "Miami", "20080504T123456Z", null);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDescription() {
|
||||
doTest(
|
||||
"BEGIN:VCALENDAR\r\nBEGIN:VEVENT\r\n" +
|
||||
"DTSTART:20080504T123456Z\r\n" +
|
||||
"DESCRIPTION:This is a test\r\n" +
|
||||
"END:VEVENT\r\nEND:VCALENDAR",
|
||||
"This is a test", null, null, "20080504T123456Z", null);
|
||||
doTest(
|
||||
"BEGIN:VCALENDAR\r\nBEGIN:VEVENT\r\n" +
|
||||
"DTSTART:20080504T123456Z\r\n" +
|
||||
"DESCRIPTION:This is a test\r\n\t with a continuation\r\n" +
|
||||
"END:VEVENT\r\nEND:VCALENDAR",
|
||||
"This is a test with a continuation", null, null, "20080504T123456Z", null);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGeo() {
|
||||
doTest(
|
||||
"BEGIN:VCALENDAR\r\nBEGIN:VEVENT\r\n" +
|
||||
"DTSTART:20080504T123456Z\r\n" +
|
||||
"GEO:-12.345;-45.678\r\n" +
|
||||
"END:VEVENT\r\nEND:VCALENDAR",
|
||||
null, null, null, "20080504T123456Z", null, null, null, -12.345, -45.678);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testBadGeo() {
|
||||
// Not parsed as VEVENT
|
||||
Result fakeResult = new Result("BEGIN:VCALENDAR\r\nBEGIN:VEVENT\r\n" +
|
||||
"GEO:-12.345\r\n" +
|
||||
"END:VEVENT\r\nEND:VCALENDAR", null, null, BarcodeFormat.QR_CODE);
|
||||
ParsedResult result = ResultParser.parseResult(fakeResult);
|
||||
assertSame(ParsedResultType.TEXT, result.getType());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testOrganizer() {
|
||||
doTest(
|
||||
"BEGIN:VCALENDAR\r\nBEGIN:VEVENT\r\n" +
|
||||
"DTSTART:20080504T123456Z\r\n" +
|
||||
"ORGANIZER:mailto:bob@example.org\r\n" +
|
||||
"END:VEVENT\r\nEND:VCALENDAR",
|
||||
null, null, null, "20080504T123456Z", null, "bob@example.org", null, Double.NaN, Double.NaN);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testAttendees() {
|
||||
doTest(
|
||||
"BEGIN:VCALENDAR\r\nBEGIN:VEVENT\r\n" +
|
||||
"DTSTART:20080504T123456Z\r\n" +
|
||||
"ATTENDEE:mailto:bob@example.org\r\n" +
|
||||
"ATTENDEE:mailto:alice@example.org\r\n" +
|
||||
"END:VEVENT\r\nEND:VCALENDAR",
|
||||
null, null, null, "20080504T123456Z", null, null,
|
||||
new String[] {"bob@example.org", "alice@example.org"}, Double.NaN, Double.NaN);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testVEventEscapes() {
|
||||
doTest("BEGIN:VEVENT\n" +
|
||||
"CREATED:20111109T110351Z\n" +
|
||||
"LAST-MODIFIED:20111109T170034Z\n" +
|
||||
"DTSTAMP:20111109T170034Z\n" +
|
||||
"UID:0f6d14ef-6cb7-4484-9080-61447ccdf9c2\n" +
|
||||
"SUMMARY:Summary line\n" +
|
||||
"CATEGORIES:Private\n" +
|
||||
"DTSTART;TZID=Europe/Vienna:20111110T110000\n" +
|
||||
"DTEND;TZID=Europe/Vienna:20111110T120000\n" +
|
||||
"LOCATION:Location\\, with\\, escaped\\, commas\n" +
|
||||
"DESCRIPTION:Meeting with a friend\\nlook at homepage first\\n\\n\n" +
|
||||
" \\n\n" +
|
||||
"SEQUENCE:1\n" +
|
||||
"X-MOZ-GENERATION:1\n" +
|
||||
"END:VEVENT",
|
||||
"Meeting with a friend\nlook at homepage first\n\n\n \n",
|
||||
"Summary line",
|
||||
"Location, with, escaped, commas",
|
||||
"20111110T110000Z",
|
||||
"20111110T120000Z");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testAllDayValueDate() {
|
||||
doTest("BEGIN:VEVENT\n" +
|
||||
"DTSTART;VALUE=DATE:20111110\n" +
|
||||
"DTEND;VALUE=DATE:20111110\n" +
|
||||
"END:VEVENT",
|
||||
null, null, null, "20111110T000000Z", "20111110T000000Z");
|
||||
}
|
||||
|
||||
private static void doTest(String contents,
|
||||
String description,
|
||||
String summary,
|
||||
String location,
|
||||
String startString,
|
||||
String endString) {
|
||||
doTest(contents, description, summary, location, startString, endString, null, null, Double.NaN, Double.NaN);
|
||||
}
|
||||
|
||||
private static void doTest(String contents,
|
||||
String description,
|
||||
String summary,
|
||||
String location,
|
||||
String startString,
|
||||
String endString,
|
||||
String organizer,
|
||||
String[] attendees,
|
||||
double latitude,
|
||||
double longitude) {
|
||||
Result fakeResult = new Result(contents, null, null, BarcodeFormat.QR_CODE);
|
||||
ParsedResult result = ResultParser.parseResult(fakeResult);
|
||||
assertSame(ParsedResultType.CALENDAR, result.getType());
|
||||
CalendarParsedResult calResult = (CalendarParsedResult) result;
|
||||
assertEquals(description, calResult.getDescription());
|
||||
assertEquals(summary, calResult.getSummary());
|
||||
assertEquals(location, calResult.getLocation());
|
||||
DateFormat dateFormat = makeGMTFormat();
|
||||
assertEquals(startString, dateFormat.format(calResult.getStartTimestamp()));
|
||||
assertEquals(endString, calResult.getEndTimestamp() < 0L ? null : dateFormat.format(calResult.getEndTimestamp()));
|
||||
assertEquals(organizer, calResult.getOrganizer());
|
||||
assertArrayEquals(attendees, calResult.getAttendees());
|
||||
assertEqualOrNaN(latitude, calResult.getLatitude());
|
||||
assertEqualOrNaN(longitude, calResult.getLongitude());
|
||||
}
|
||||
|
||||
private static void assertEqualOrNaN(double expected, double actual) {
|
||||
if (Double.isNaN(expected)) {
|
||||
assertTrue(Double.isNaN(actual));
|
||||
} else {
|
||||
assertEquals(expected, actual, EPSILON);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user