1b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru/*
2b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru**********************************************************************
3b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho* Copyright (C) 2011, International Business Machines Corporation
4b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru* and others.  All Rights Reserved.
5b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru**********************************************************************
6b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru*/
7b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru
8b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru/**
9b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * IntlTestSpoof is the top level test class for the Unicode Spoof detection tests
10b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru */
11b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru
12b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru#ifndef INTLTESTSPOOF_H
13b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru#define INTLTESTSPOOF_H
14b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru
15b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru#include "unicode/utypes.h"
1650294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho#if !UCONFIG_NO_REGULAR_EXPRESSIONS && !UCONFIG_NO_NORMALIZATION && !UCONFIG_NO_FILE_IO
17b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru#include "unicode/uspoof.h"
18b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru#include "intltest.h"
19b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru
20b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru
21b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queruclass IntlTestSpoof: public IntlTest {
22b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Querupublic:
23b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru    void runIndexedTest( int32_t index, UBool exec, const char* &name, char* par = NULL );
24b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru
25b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru    // Test the USpoofDetector API functions that require C++
26b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru    // The pure C part of the API, which is most of it, is tested in cintltst
27b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru    void  testSpoofAPI();
28b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru
29b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru    void  testSkeleton();
30b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru
31b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru    void testAreConfusable();
32b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru
33b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru    void testInvisible();
34b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru
3550294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho    void testConfData();
3650294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
37b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho    void testBug8654();
38b26ce3a7367e4ed2ee7ddddcdc3f3d3377a455c2claireho
39b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru    // Internal function to run a single skeleton test case.
40b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru    void  checkSkeleton(const USpoofChecker *sc, uint32_t flags,
41b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru                        const char *input, const char *expected, int32_t lineNum);
42b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru};
43b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru
4450294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho#endif  // !UCONFIG_NO_REGULAR_EXPRESSIONS && !UCONFIG_NO_NORMALIZATION && !UCONFIG_NO_FILE_IO
45b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru#endif
46