1b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru/*
2b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru**********************************************************************
38393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius* Copyright (C) 2011-2013, 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
398393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius    void testIdentifierInfo();
408393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius
418393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius    void testScriptSet();
428393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius
438393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius    void testRestrictionLevel();
448393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius
458393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius    void testMixedNumbers();
468393335b955da7340c9f19b1b4b2d6c0c2c04be7Craig Cornelius
47b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru    // Internal function to run a single skeleton test case.
48b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru    void  checkSkeleton(const USpoofChecker *sc, uint32_t flags,
49b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru                        const char *input, const char *expected, int32_t lineNum);
50b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru};
51b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru
5250294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho#endif  // !UCONFIG_NO_REGULAR_EXPRESSIONS && !UCONFIG_NO_NORMALIZATION && !UCONFIG_NO_FILE_IO
53b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru#endif
54