FOSSology  4.4.0
Open Source License Compliance by Open Source Software
test_encoding.c
1 /*
2  Author: Daniele Fognini
3  SPDX-FileCopyrightText: © 2013-2014 Siemens AG
4 
5  SPDX-License-Identifier: GPL-2.0-only
6 */
7 
8 #include <stdlib.h>
9 #include <stdio.h>
10 #include <CUnit/CUnit.h>
11 #include <string_operations.h>
12 
13 #include "encoding.h"
14 #include "hash.h"
15 #include "libfocunit.h"
16 
17 
18 void test_guess_encoding() {
19  char* buffer = "an ascii text";
20  gchar* guessedEncoding = guessEncoding(buffer, strlen(buffer));
21 
22 #ifdef HAVE_CHARDET
23  CU_ASSERT_PTR_NULL(guessedEncoding);
24 #else
25  CU_ASSERT_PTR_NOT_NULL_FATAL(guessedEncoding);
26  FO_ASSERT_STRING_EQUAL(guessedEncoding, "us-ascii");
27 #endif
28 
29  if (guessedEncoding) {
30  g_free(guessedEncoding);
31  }
32 }
33 
34 void test_guess_encodingUtf8() {
35  char* buffer = "an utf8 ß";
36  gchar* guessedEncoding = guessEncoding(buffer, strlen(buffer));
37 
38  CU_ASSERT_PTR_NOT_NULL_FATAL(guessedEncoding);
39 
40 #ifdef HAVE_CHARDET
41  FO_ASSERT_STRING_EQUAL(guessedEncoding, "UTF-8");
42 #else
43  FO_ASSERT_STRING_EQUAL(guessedEncoding, "utf-8");
44 #endif
45 
46  if (guessedEncoding) {
47  g_free(guessedEncoding);
48  }
49 }
50 
51 void test_guess_encodingLatin1() {
52  char* buffer = "a latin1 \xdf\x0a"; // ß
53  gchar* guessedEncoding = guessEncoding(buffer, strlen(buffer));
54 
55  CU_ASSERT_PTR_NOT_NULL_FATAL(guessedEncoding);
56 
57 #ifdef HAVE_CHARDET
58  FO_ASSERT_STRING_EQUAL(guessedEncoding, "windows-1252");
59 #else
60  FO_ASSERT_STRING_EQUAL(guessedEncoding, "iso-8859-1");
61 #endif
62 
63  if (guessedEncoding) {
64  g_free(guessedEncoding);
65  }
66 }
67 
68 CU_TestInfo encoding_testcases[] = {
69  {"Testing guessing encoding of buffer:", test_guess_encoding},
70  {"Testing guessing encoding of buffer utf8:", test_guess_encodingUtf8},
71  {"Testing guessing encoding of buffer Latin1:", test_guess_encodingLatin1},
72  CU_TEST_INFO_NULL
73 };
char buffer[2048]
The last thing received from the scheduler.