api-init1.tsy revision 5c526acb82c882e41b655c31f5fa4425c87b671c
b91d11bfcc30b96f2c80f3a76d12e3dcc8597a68Mark Andrews#ifndef lint
bf8267aa453e5d2a735ed732a043b77a0b355b20Mark Andrewsstatic char *rcsid = "$Id: api-init1.tsy,v 1.1 2003/06/04 00:26:46 marka Exp $";
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews#endif
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews/*
2bef3713093349af52ba61eaab07adf3207da873Mark Andrews * Copyright (c) 2002 Japan Network Information Center.
2bef3713093349af52ba61eaab07adf3207da873Mark Andrews * All rights reserved.
2bef3713093349af52ba61eaab07adf3207da873Mark Andrews *
2bef3713093349af52ba61eaab07adf3207da873Mark Andrews * By using this file, you agree to the terms and conditions set forth bellow.
2bef3713093349af52ba61eaab07adf3207da873Mark Andrews *
2bef3713093349af52ba61eaab07adf3207da873Mark Andrews * LICENSE TERMS AND CONDITIONS
2bef3713093349af52ba61eaab07adf3207da873Mark Andrews *
2bef3713093349af52ba61eaab07adf3207da873Mark Andrews * The following License Terms and Conditions apply, unless a different
2bef3713093349af52ba61eaab07adf3207da873Mark Andrews * license is obtained from Japan Network Information Center ("JPNIC"),
2bef3713093349af52ba61eaab07adf3207da873Mark Andrews * a Japanese association, Kokusai-Kougyou-Kanda Bldg 6F, 2-3-4 Uchi-Kanda,
2bef3713093349af52ba61eaab07adf3207da873Mark Andrews * Chiyoda-ku, Tokyo 101-0047, Japan.
2bef3713093349af52ba61eaab07adf3207da873Mark Andrews *
a27bbd21cf07371fc71e7ade75c3d78a5b98b7f9Mark Andrews * 1. Use, Modification and Redistribution (including distribution of any
a27bbd21cf07371fc71e7ade75c3d78a5b98b7f9Mark Andrews * modified or derived work) in source and/or binary forms is permitted
de7df3e56fe99c33a415674b018aae93eee94750Evan Hunt * under this License Terms and Conditions.
de7df3e56fe99c33a415674b018aae93eee94750Evan Hunt *
de7df3e56fe99c33a415674b018aae93eee94750Evan Hunt * 2. Redistribution of source code must retain the copyright notices as they
de7df3e56fe99c33a415674b018aae93eee94750Evan Hunt * appear in each source code file, this License Terms and Conditions.
a27bbd21cf07371fc71e7ade75c3d78a5b98b7f9Mark Andrews *
a27bbd21cf07371fc71e7ade75c3d78a5b98b7f9Mark Andrews * 3. Redistribution in binary form must reproduce the Copyright Notice,
de7df3e56fe99c33a415674b018aae93eee94750Evan Hunt * this License Terms and Conditions, in the documentation and/or other
ff6de396a93b9b73a37173059a595f3d295b57cbMark Andrews * materials provided with the distribution. For the purposes of binary
ff6de396a93b9b73a37173059a595f3d295b57cbMark Andrews * distribution the "Copyright Notice" refers to the following language:
ff6de396a93b9b73a37173059a595f3d295b57cbMark Andrews * "Copyright (c) 2000-2002 Japan Network Information Center. All rights reserved."
ff6de396a93b9b73a37173059a595f3d295b57cbMark Andrews *
ff6de396a93b9b73a37173059a595f3d295b57cbMark Andrews * 4. The name of JPNIC may not be used to endorse or promote products
ff6de396a93b9b73a37173059a595f3d295b57cbMark Andrews * derived from this Software without specific prior written approval of
ff6de396a93b9b73a37173059a595f3d295b57cbMark Andrews * JPNIC.
ff6de396a93b9b73a37173059a595f3d295b57cbMark Andrews *
ff6de396a93b9b73a37173059a595f3d295b57cbMark Andrews * 5. Disclaimer/Limitation of Liability: THIS SOFTWARE IS PROVIDED BY JPNIC
ff6de396a93b9b73a37173059a595f3d295b57cbMark Andrews * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
8f25faf9720a0c2730c4ac80ea4c12ca1f25599fMukund Sivaraman * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
aa49af836ce7a7a2888f5cedf4cbb14ff4dc1d11Mark Andrews * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JPNIC BE LIABLE
aa49af836ce7a7a2888f5cedf4cbb14ff4dc1d11Mark Andrews * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
aa49af836ce7a7a2888f5cedf4cbb14ff4dc1d11Mark Andrews * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23ac7e663494ffdfd78b52d1a0a62d93f0d30d93Mark Andrews * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
23ac7e663494ffdfd78b52d1a0a62d93f0d30d93Mark Andrews * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
23ac7e663494ffdfd78b52d1a0a62d93f0d30d93Mark Andrews * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
23ac7e663494ffdfd78b52d1a0a62d93f0d30d93Mark Andrews * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
aa49af836ce7a7a2888f5cedf4cbb14ff4dc1d11Mark Andrews * ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
aa49af836ce7a7a2888f5cedf4cbb14ff4dc1d11Mark Andrews */
2bef3713093349af52ba61eaab07adf3207da873Mark Andrews
8f25faf9720a0c2730c4ac80ea4c12ca1f25599fMukund Sivaraman#include <stddef.h>
8f25faf9720a0c2730c4ac80ea4c12ca1f25599fMukund Sivaraman#include <stdio.h>
8f25faf9720a0c2730c4ac80ea4c12ca1f25599fMukund Sivaraman#include <stdlib.h>
8f25faf9720a0c2730c4ac80ea4c12ca1f25599fMukund Sivaraman#include <idn/api.h>
8f25faf9720a0c2730c4ac80ea4c12ca1f25599fMukund Sivaraman#include <idn/log.h>
8f25faf9720a0c2730c4ac80ea4c12ca1f25599fMukund Sivaraman
8f25faf9720a0c2730c4ac80ea4c12ca1f25599fMukund Sivaraman#include "codeset.h"
8f25faf9720a0c2730c4ac80ea4c12ca1f25599fMukund Sivaraman#include "setenv.h"
8f25faf9720a0c2730c4ac80ea4c12ca1f25599fMukund Sivaraman#include "testutil.h"
d999ca28d40337907b55eebc28a255b638702379Evan Hunt
d999ca28d40337907b55eebc28a255b638702379Evan Hunt#ifndef EUCJP_ENCODING_NAME
d1f1f13c7fc1f1515930053508f1645cfafaa478Mark Andrews#define EUCJP_ENCODING_NAME "eucJP"
d1f1f13c7fc1f1515930053508f1645cfafaa478Mark Andrews#endif
d999ca28d40337907b55eebc28a255b638702379Evan Hunt
d999ca28d40337907b55eebc28a255b638702379Evan Hunt#define CONF_FILENAME "test.conf"
d999ca28d40337907b55eebc28a255b638702379Evan Hunt
67adc03ef81fb610f8df093b17f55275ee816754Evan Hunt//--------------------------------------------------------------------
67adc03ef81fb610f8df093b17f55275ee816754Evan Hunt// Setups and Teardowns.
67adc03ef81fb610f8df093b17f55275ee816754Evan Hunt//--------------------------------------------------------------------
67adc03ef81fb610f8df093b17f55275ee816754Evan Hunt
67adc03ef81fb610f8df093b17f55275ee816754Evan Hunt//# SETUP
67adc03ef81fb610f8df093b17f55275ee816754Evan Hunt// group: init
e45d0508c3460db87afb1f743bc5210522721bb3Evan Hunt{
e45d0508c3460db87afb1f743bc5210522721bb3Evan Hunt char to[256];
e45d0508c3460db87afb1f743bc5210522721bb3Evan Hunt idn_result_t r;
e45d0508c3460db87afb1f743bc5210522721bb3Evan Hunt
e45d0508c3460db87afb1f743bc5210522721bb3Evan Hunt setenv("IDN_LOCAL_CODESET", "UTF-8", 1);
e45d0508c3460db87afb1f743bc5210522721bb3Evan Hunt unsetenv("IDN_DISABLE");
e45d0508c3460db87afb1f743bc5210522721bb3Evan Hunt create_conf_file(CONF_FILENAME, 0,
de7df3e56fe99c33a415674b018aae93eee94750Evan Hunt "idn-encoding UTF-8",
de7df3e56fe99c33a415674b018aae93eee94750Evan Hunt NULL);
de7df3e56fe99c33a415674b018aae93eee94750Evan Hunt}
ac436908582fe08c85c886b200664816b11fded6Mark Andrews
de7df3e56fe99c33a415674b018aae93eee94750Evan Hunt//# TEARDOWN
de7df3e56fe99c33a415674b018aae93eee94750Evan Hunt// group: init
de7df3e56fe99c33a415674b018aae93eee94750Evan Hunt{
de7df3e56fe99c33a415674b018aae93eee94750Evan Hunt remove(CONF_FILENAME);
2bef3713093349af52ba61eaab07adf3207da873Mark Andrews}
2bef3713093349af52ba61eaab07adf3207da873Mark Andrews
2bef3713093349af52ba61eaab07adf3207da873Mark Andrews//--------------------------------------------------------------------
820fdd61dd35e359a8e616031209d074a7140d97Evan Hunt// Testcases.
820fdd61dd35e359a8e616031209d074a7140d97Evan Hunt//--------------------------------------------------------------------
820fdd61dd35e359a8e616031209d074a7140d97Evan Hunt
820fdd61dd35e359a8e616031209d074a7140d97Evan Hunt//# TESTCASE
820fdd61dd35e359a8e616031209d074a7140d97Evan Hunt// title: nameinit(0)
820fdd61dd35e359a8e616031209d074a7140d97Evan Hunt// group: init
820fdd61dd35e359a8e616031209d074a7140d97Evan Hunt{
820fdd61dd35e359a8e616031209d074a7140d97Evan Hunt r = idn__setconffile(CONF_FILENAME);
820fdd61dd35e359a8e616031209d074a7140d97Evan Hunt ASSERT_RESULT(r, idn_success);
820fdd61dd35e359a8e616031209d074a7140d97Evan Hunt
820fdd61dd35e359a8e616031209d074a7140d97Evan Hunt r = idn_nameinit(0);
820fdd61dd35e359a8e616031209d074a7140d97Evan Hunt ASSERT_RESULT(r, idn_success);
820fdd61dd35e359a8e616031209d074a7140d97Evan Hunt
820fdd61dd35e359a8e616031209d074a7140d97Evan Hunt r = idn_encodename(IDN_ENCODE_APP, "<U+3042>", to, sizeof(to));
820fdd61dd35e359a8e616031209d074a7140d97Evan Hunt ASSERT_RESULT(r, idn_success);
820fdd61dd35e359a8e616031209d074a7140d97Evan Hunt ASSERT_STRING(to, "xn--l8j");
820fdd61dd35e359a8e616031209d074a7140d97Evan Hunt
820fdd61dd35e359a8e616031209d074a7140d97Evan Hunt r = idn_decodename(IDN_DECODE_APP, "xn--l8j", to, sizeof(to));
076bda8c2e2b2f41775bd7b1694dd2cab287aeebMark Andrews ASSERT_RESULT(r, idn_success);
076bda8c2e2b2f41775bd7b1694dd2cab287aeebMark Andrews ASSERT_STRING(to, "<U+3042>");
076bda8c2e2b2f41775bd7b1694dd2cab287aeebMark Andrews
076bda8c2e2b2f41775bd7b1694dd2cab287aeebMark Andrews r = idn_decodename2(IDN_DECODE_APP, "xn--l8j", to, sizeof(to),
076bda8c2e2b2f41775bd7b1694dd2cab287aeebMark Andrews EUCJP_ENCODING_NAME);
076bda8c2e2b2f41775bd7b1694dd2cab287aeebMark Andrews ASSERT_RESULT(r, idn_success);
076bda8c2e2b2f41775bd7b1694dd2cab287aeebMark Andrews ASSERT_STRING(to, "<U+3042>");
076bda8c2e2b2f41775bd7b1694dd2cab287aeebMark Andrews}
076bda8c2e2b2f41775bd7b1694dd2cab287aeebMark Andrews