/* This file is part of OpenMyEWB. OpenMyEWB is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. OpenMyEWB is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenMyEWB. If not, see <http://www.gnu.org/licenses/>. OpenMyEWB is Copyright 2005-2009 Nicolas Kruchten (nicolas@kruchten.com), Francis Kung, Engineers Without Borders Canada, Michael Trauttmansdorff, Jon Fishbein, David Kadish */ package ca.myewb.tests; import junit.framework.TestCase; import java.util.LinkedList; import java.util.List; import ca.myewb.frame.forms.element.Text; import ca.myewb.frame.forms.multiment.Address; import ca.myewb.frame.forms.multiment.Phone; public class FormTest extends TestCase { public void testEnsureAlphabetic() { List<Character> allowed = new LinkedList<Character>(); allowed.add('.'); Text text = new Text("test", "test", "abcdef", true); assertTrue(text.ensureAlphabetic(new LinkedList<Character>(), false)); assertTrue(text.ensureAlphabetic(allowed, false)); assertTrue(text.ensureAlphabetic(new LinkedList<Character>(), true)); assertTrue(text.ensureAlphabetic(allowed, true)); text = new Text("test", "test", "kbkedHkmELK", true); assertTrue(text.ensureAlphabetic(new LinkedList<Character>(), false)); assertTrue(text.ensureAlphabetic(new LinkedList<Character>(), true)); text = new Text("test", "test", "abslrhgsjh ajhf", true); assertFalse(text.ensureAlphabetic(new LinkedList<Character>(), false)); assertFalse(text.ensureAlphabetic(allowed, false)); assertFalse(text.ensureAlphabetic(new LinkedList<Character>(), true)); assertFalse(text.ensureAlphabetic(allowed, true)); text = new Text("test", "test", "ab23gw", true); assertFalse(text.ensureAlphabetic(new LinkedList<Character>(), false)); assertFalse(text.ensureAlphabetic(new LinkedList<Character>(), true)); text = new Text("test", "test", "adfad.df", true); assertFalse(text.ensureAlphabetic(new LinkedList<Character>(), false)); assertTrue(text.ensureAlphabetic(allowed, false)); assertFalse(text.ensureAlphabetic(new LinkedList<Character>(), true)); assertTrue(text.ensureAlphabetic(allowed, true)); text = new Text("test", "test", "asdf\u00E8", true); assertFalse(text.ensureAlphabetic(new LinkedList<Character>(), false)); assertTrue(text.ensureAlphabetic(new LinkedList<Character>(), true)); text = new Text("test", "test", "adfad.df\u00E8", true); assertFalse(text.ensureAlphabetic(new LinkedList<Character>(), false)); assertFalse(text.ensureAlphabetic(allowed, false)); assertFalse(text.ensureAlphabetic(new LinkedList<Character>(), true)); assertTrue(text.ensureAlphabetic(allowed, true)); } public void testEnsureNumeric() { List<Character> allowed = new LinkedList<Character>(); allowed.add(' '); Text text = new Text("test", "test", "123896745624", true); assertTrue(text.ensureNumeric()); assertTrue(text.ensureNumeric(allowed)); text = new Text("test", "test", "23", true); assertTrue(text.ensureNumeric(10, 30)); assertFalse(text.ensureNumeric(3, 7)); text = new Text("test", "test", "123kfv99", true); assertFalse(text.ensureNumeric()); text = new Text("test", "test", "123 345", true); assertFalse(text.ensureNumeric()); assertTrue(text.ensureNumeric(allowed)); } public void testEnsureAlphanumeric() { List<Character> allowed = new LinkedList<Character>(); allowed.add('.'); Text text = new Text("test", "test", "123abc123", true); assertTrue(text.ensureAlphanumeric(false)); text = new Text("test", "test", "123456", true); assertTrue(text.ensureAlphanumeric(false)); text = new Text("test", "test", "abcdef", true); assertTrue(text.ensureAlphanumeric(false)); text = new Text("test", "test", "123abc..123", true); assertFalse(text.ensureAlphanumeric(false)); assertTrue(text.ensureAlphanumeric(allowed, false)); text = new Text("test", "test", "123abc..123\u00E8", true); assertFalse(text.ensureAlphanumeric(false)); assertFalse(text.ensureAlphanumeric(allowed, false)); assertTrue(text.ensureAlphanumeric(allowed, true)); } public void testEnsureEmail() { Text text = new Text("test", "test", "francis@sytem.com", true); assertTrue(text.ensureEmail()); text = new Text("test", "test", "francis.kung@utoronto.ca", true); assertTrue(text.ensureEmail()); text = new Text("test", "test", "president@utoronto.sytem.com", true); assertTrue(text.ensureEmail()); text = new Text("test", "test", "francis.kung123@utoronto.sytem.com", true); assertTrue(text.ensureEmail()); text = new Text("test", "test", "someone@hotmail456.com", true); assertTrue(text.ensureEmail()); text = new Text("test", "test", "someon_-asdf@_d.d-.tmail456.com", true); assertTrue(text.ensureEmail()); text = new Text("test", "test", "fr\u00E8ncis@sytem.com", true); assertFalse(text.ensureEmail()); text = new Text("test", "test", "francis kung@utoronto.ca", true); assertFalse(text.ensureEmail()); text = new Text("test", "test", "francis@ewbca", true); assertFalse(text.ensureEmail()); text = new Text("test", "test", "me", true); assertFalse(text.ensureEmail()); text = new Text("test", "test", "a::b", true); assertFalse(text.ensureEmail()); text = new Text("test", "test", "francis@.ewbca", true); assertFalse(text.ensureEmail()); text = new Text("test", "test", "francis@.ewbca.", true); assertFalse(text.ensureEmail()); text = new Text("test", "test", "francis@ewb.", true); assertFalse(text.ensureEmail()); text = new Text("test", "test", "francis@ewb..ca", true); assertFalse(text.ensureEmail()); text = new Text("test", "test", "francis@...", true); assertFalse(text.ensureEmail()); text = new Text("test", "test", "francis@@sytem.com", true); assertFalse(text.ensureEmail()); text = new Text("test", "test", "francis@a@sytem.com", true); assertFalse(text.ensureEmail()); text = new Text("test", "test", "francis@system,com", true); assertFalse(text.ensureEmail()); } public void testEnsurePostalCode() { Text text = new Text("test", "test", "A1A1A1", true); assertTrue(text.ensurePostalCode()); assertEquals("A1A 1A1", text.getValue()); text = new Text("test", "test", "A1A 1A1", true); assertTrue(text.ensurePostalCode()); text = new Text("test", "test", "j3A 5v2", true); assertTrue(text.ensurePostalCode()); assertEquals("J3A 5V2", text.getValue()); text = new Text("test", "test", "ABCDEF", true); assertFalse(text.ensurePostalCode()); text = new Text("test", "test", "123 456", true); assertFalse(text.ensurePostalCode()); text = new Text("test", "test", "a1a 1a", true); assertFalse(text.ensurePostalCode()); text = new Text("test", "test", "a1a1a", true); assertFalse(text.ensurePostalCode()); text = new Text("test", "test", "a1a 1a1a", true); assertFalse(text.ensurePostalCode()); text = new Text("test", "test", "a1a1a1a", true); assertFalse(text.ensurePostalCode()); } public void testEnsureName() { Text text = new Text("test", "test", "Francis", true); assertTrue(text.ensureName()); text = new Text("test", "test", "Francis Kung", true); assertTrue(text.ensureName()); text = new Text("test", "test", "Francis Kung-Hyphenated", true); assertTrue(text.ensureName()); text = new Text("test", "test", "Francis N.W. Kung", true); assertTrue(text.ensureName()); text = new Text("test", "test", "francis", true); assertTrue(text.ensureName()); assertEquals(text.getValue(), "Francis"); text = new Text("test", "test", "francis kung", true); assertTrue(text.ensureName()); assertEquals(text.getValue(), "Francis Kung"); text = new Text("test", "test", "FRANCIS", true); assertTrue(text.ensureName()); assertEquals(text.getValue(), "Francis"); text = new Text("test", "test", "FRANCIS KUNG", true); assertTrue(text.ensureName()); assertEquals(text.getValue(), "Francis Kung"); text = new Text("test", "test", "francis n.w. kung", true); assertTrue(text.ensureName()); assertEquals(text.getValue(), "Francis N.W. Kung"); text = new Text("test", "test", "francis kung-other", true); assertTrue(text.ensureName()); assertEquals(text.getValue(), "Francis Kung-Other"); text = new Text("test", "test", "fr\u00E8ncis kung-other's", true); assertTrue(text.ensureName()); assertEquals(text.getValue(), "Fr\u00E8ncis Kung-Other's"); } public void testPhone() { String[] number = new String[]{"416", "833", "5570", "12"}; Phone phone = new Phone("test", "test", number, true); assertEquals(phone.getValue(), "(416) 833-5570 ext. 12"); assertTrue(phone.validate()); number = new String[]{"416", "833", "5570", ""}; phone = new Phone("test", "test", number, true); assertEquals(phone.getValue(), "(416) 833-5570"); assertTrue(phone.validate()); number = new String[]{"416", "833", "5570", null}; phone = new Phone("test", "test", number, true); assertEquals(phone.getValue(), "(416) 833-5570"); assertTrue(phone.validate()); phone = new Phone("test", "test", null, true); phone.setValue("(416) 833-5570"); assertEquals(phone.getValue(), "(416) 833-5570"); phone = new Phone("test", "test", null, true); phone.setValue("(416) 833-5570 ext. 27"); assertEquals(phone.getValue(), "(416) 833-5570 ext. 27"); number = new String[]{"46", "833", "5570", ""}; phone = new Phone("test", "test", number, true); assertFalse(phone.validate()); number = new String[]{"416", "8b3", "5c70", "d"}; phone = new Phone("test", "test", number, true); assertFalse(phone.validate()); } public void testAddress() { String[] address = new String[] { "Engineers Without Borders", "201", "188 Davenport Road", "Toronto", "ON", "M5R 1J2", "CA" }; Address add = new Address("test", "test", address, true); assertEquals(add.getValue(), "Engineers Without Borders\n" + "Suite 201\n" + "188 Davenport Road\n" + "Toronto\n" + "ON\n" + "M5R 1J2\n" + "CA"); assertTrue(add.validate()); address = new String[] { "201-188 Davenport Rd.", null, null, "Toronto", "ON", "M5R 1J2", "CA" }; add = new Address("test", "test", address, true); assertEquals(add.getValue(), "201-188 Davenport Rd.\n\n\n" + "Toronto\n" + "ON\n" + "M5R 1J2\n" + "CA"); assertTrue(add.validate()); add = new Address("test", "test", null, true); add.setValue("188 Davenport Road\n" + "Suite 201\n" + "\n" + "Toronto\n" + "ON\n" + "M5R 1J2"); assertEquals(add.getValue(), "188 Davenport Road\n" + "Suite 201\n\n" + "Toronto\n" + "ON\n" + "M5R 1J2\n"); address = new String[] { "201;188 Davenport Rd.", null, null, "Toronto", "ON", "M5R 1J2" }; add = new Address("test", "test", address, true); assertFalse(add.validate()); address = new String[] { "201-188 Davenport Rd.", null, null, "Toronto", null, "M5R 1J2" }; add = new Address("test", "test", address, true); assertFalse(add.validate()); address = new String[] { "Engineer\u00E8's Without Borders 1", "201", "188 D\u00E8venport's Road", "Toronta's 100", "ON", "M5R 1J2", "CA" }; add = new Address("test", "test", address, true); assertEquals(add.getValue(), "Engineer\u00E8's Without Borders 1\n" + "Suite 201\n" + "188 D\u00E8venport's Road\n" + "Toronta's 100\n" + "ON\n" + "M5R 1J2\n" + "CA"); assertTrue(add.validate()); } public void testLengths() { Text text = new Text("test", "test", "1234567890", true); assertTrue(text.ensureWordLength(5, true)); assertEquals(text.getValue(), "12345 67890"); assertTrue(text.ensureWordLength(3, true)); assertEquals(text.getValue(), "123 45 678 90"); assertTrue(text.ensureWordLength(2, false)); assertEquals(text.getValue(), "12 45 67 90"); assertTrue(text.ensureTotalLength(false, 10)); assertEquals(text.getValue(), "12 45 67 9"); assertFalse(text.ensureTotalLength(true, 5)); assertEquals(text.getValue(), "12 45 67 9"); text = new Text("test", "test", "1234567890", true); assertTrue(text.ensureWordLength(2, true)); assertEquals(text.getValue(), "12 34 56 78 90"); } public void testDate() { assertFalse(new Text("test", "test", "asldfjks", true).ensureDate()); assertTrue(new Text("test", "test", "2006-06-06", true).ensureDate()); } }