1#ifndef lint 2static char *rcsid = "$Id: api-init1.tsy,v 1.1 2003/06/04 00:26:46 marka Exp $"; 3#endif 4 5/* 6 * Copyright (c) 2002 Japan Network Information Center. 7 * All rights reserved. 8 * 9 * By using this file, you agree to the terms and conditions set forth bellow. 10 * 11 * LICENSE TERMS AND CONDITIONS 12 * 13 * The following License Terms and Conditions apply, unless a different 14 * license is obtained from Japan Network Information Center ("JPNIC"), 15 * a Japanese association, Kokusai-Kougyou-Kanda Bldg 6F, 2-3-4 Uchi-Kanda, 16 * Chiyoda-ku, Tokyo 101-0047, Japan. 17 * 18 * 1. Use, Modification and Redistribution (including distribution of any 19 * modified or derived work) in source and/or binary forms is permitted 20 * under this License Terms and Conditions. 21 * 22 * 2. Redistribution of source code must retain the copyright notices as they 23 * appear in each source code file, this License Terms and Conditions. 24 * 25 * 3. Redistribution in binary form must reproduce the Copyright Notice, 26 * this License Terms and Conditions, in the documentation and/or other 27 * materials provided with the distribution. For the purposes of binary 28 * distribution the "Copyright Notice" refers to the following language: 29 * "Copyright (c) 2000-2002 Japan Network Information Center. All rights reserved." 30 * 31 * 4. The name of JPNIC may not be used to endorse or promote products 32 * derived from this Software without specific prior written approval of 33 * JPNIC. 34 * 35 * 5. Disclaimer/Limitation of Liability: THIS SOFTWARE IS PROVIDED BY JPNIC 36 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 37 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A 38 * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JPNIC BE LIABLE 39 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 40 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 41 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR 42 * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 43 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 44 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 45 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 46 */ 47 48#include <stddef.h> 49#include <stdio.h> 50#include <stdlib.h> 51#include <idn/api.h> 52#include <idn/log.h> 53 54#include "codeset.h" 55#include "setenv.h" 56#include "testutil.h" 57 58#ifndef EUCJP_ENCODING_NAME 59#define EUCJP_ENCODING_NAME "eucJP" 60#endif 61 62#define CONF_FILENAME "test.conf" 63 64//-------------------------------------------------------------------- 65// Setups and Teardowns. 66//-------------------------------------------------------------------- 67 68//# SETUP 69// group: init 70{ 71 char to[256]; 72 idn_result_t r; 73 74 setenv("IDN_LOCAL_CODESET", "UTF-8", 1); 75 unsetenv("IDN_DISABLE"); 76 create_conf_file(CONF_FILENAME, 0, 77 "idn-encoding UTF-8", 78 NULL); 79} 80 81//# TEARDOWN 82// group: init 83{ 84 remove(CONF_FILENAME); 85} 86 87//-------------------------------------------------------------------- 88// Testcases. 89//-------------------------------------------------------------------- 90 91//# TESTCASE 92// title: nameinit(0) 93// group: init 94{ 95 r = idn__setconffile(CONF_FILENAME); 96 ASSERT_RESULT(r, idn_success); 97 98 r = idn_nameinit(0); 99 ASSERT_RESULT(r, idn_success); 100 101 r = idn_encodename(IDN_ENCODE_APP, "<U+3042>", to, sizeof(to)); 102 ASSERT_RESULT(r, idn_success); 103 ASSERT_STRING(to, "xn--l8j"); 104 105 r = idn_decodename(IDN_DECODE_APP, "xn--l8j", to, sizeof(to)); 106 ASSERT_RESULT(r, idn_success); 107 ASSERT_STRING(to, "<U+3042>"); 108 109 r = idn_decodename2(IDN_DECODE_APP, "xn--l8j", to, sizeof(to), 110 EUCJP_ENCODING_NAME); 111 ASSERT_RESULT(r, idn_success); 112 ASSERT_STRING(to, "<U+3042>"); 113} 114