tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

test_crlselector.c (4490B)


      1 /* This Source Code Form is subject to the terms of the Mozilla Public
      2 * License, v. 2.0. If a copy of the MPL was not distributed with this
      3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
      4 /*
      5 * test_crlselector.c
      6 *
      7 * Test CRLSelector Type
      8 *
      9 */
     10 
     11 #include "testutil.h"
     12 #include "testutil_nss.h"
     13 
     14 static void *plContext = NULL;
     15 
     16 static void
     17 testGetMatchCallback(PKIX_CRLSelector *goodObject)
     18 {
     19    PKIX_CRLSelector_MatchCallback mCallback = NULL;
     20 
     21    PKIX_TEST_STD_VARS();
     22 
     23    subTest("testGetMatchCallback");
     24 
     25    PKIX_TEST_EXPECT_NO_ERROR(PKIX_CRLSelector_GetMatchCallback(goodObject, &mCallback, plContext));
     26 
     27    if (mCallback == NULL) {
     28        pkixTestErrorMsg = "MatchCallback is NULL";
     29    }
     30 
     31 cleanup:
     32 
     33    PKIX_TEST_RETURN();
     34 }
     35 
     36 static void
     37 testGetCRLSelectorContext(PKIX_CRLSelector *goodObject)
     38 {
     39    PKIX_PL_Object *context = NULL;
     40 
     41    PKIX_TEST_STD_VARS();
     42 
     43    subTest("testGetCRLSelectorContext");
     44 
     45    PKIX_TEST_EXPECT_NO_ERROR(PKIX_CRLSelector_GetCRLSelectorContext(goodObject, (void *)&context, plContext));
     46 
     47    if (context == NULL) {
     48        pkixTestErrorMsg = "CRLSelectorContext is NULL";
     49    }
     50 
     51 cleanup:
     52 
     53    PKIX_TEST_DECREF_AC(context);
     54    PKIX_TEST_RETURN();
     55 }
     56 
     57 static void
     58 testCommonCRLSelectorParams(PKIX_CRLSelector *goodObject)
     59 {
     60    PKIX_ComCRLSelParams *setParams = NULL;
     61    PKIX_ComCRLSelParams *getParams = NULL;
     62    PKIX_PL_Date *setDate = NULL;
     63    char *asciiDate = "040329134847Z";
     64 
     65    PKIX_TEST_STD_VARS();
     66 
     67    subTest("PKIX_ComCRLSelParams_Create");
     68    PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCRLSelParams_Create(&setParams,
     69                                                          plContext));
     70 
     71    subTest("PKIX_ComCRLSelParams_Date Create");
     72 
     73    setDate = createDate(asciiDate, plContext);
     74 
     75    subTest("PKIX_ComCRLSelParams_SetDateAndTime");
     76 
     77    PKIX_TEST_EXPECT_NO_ERROR(PKIX_ComCRLSelParams_SetDateAndTime(setParams, setDate, plContext));
     78 
     79    subTest("PKIX_CRLSelector_SetCommonCRLSelectorParams");
     80 
     81    PKIX_TEST_EXPECT_NO_ERROR(PKIX_CRLSelector_SetCommonCRLSelectorParams(
     82        goodObject, setParams, plContext));
     83 
     84    subTest("PKIX_CRLSelector_GetCommonCRLSelectorParams");
     85 
     86    PKIX_TEST_EXPECT_NO_ERROR(PKIX_CRLSelector_GetCommonCRLSelectorParams(
     87        goodObject, &getParams, plContext));
     88 
     89    testEqualsHelper((PKIX_PL_Object *)setParams,
     90                     (PKIX_PL_Object *)getParams,
     91                     PKIX_TRUE,
     92                     plContext);
     93 
     94    testHashcodeHelper((PKIX_PL_Object *)setParams,
     95                       (PKIX_PL_Object *)getParams,
     96                       PKIX_TRUE,
     97                       plContext);
     98 
     99 cleanup:
    100 
    101    PKIX_TEST_DECREF_AC(setDate);
    102    PKIX_TEST_DECREF_AC(setParams);
    103    PKIX_TEST_DECREF_AC(getParams);
    104 
    105    PKIX_TEST_RETURN();
    106 }
    107 
    108 /* Functional tests for CRLSelector public functions */
    109 
    110 int
    111 test_crlselector(int argc, char *argv[])
    112 {
    113 
    114    PKIX_PL_Date *context = NULL;
    115    PKIX_CRLSelector *goodObject = NULL;
    116    PKIX_CRLSelector *diffObject = NULL;
    117    PKIX_UInt32 actualMinorVersion;
    118    PKIX_UInt32 j = 0;
    119    char *asciiDate = "040329134847Z";
    120 
    121    PKIX_TEST_STD_VARS();
    122 
    123    startTests("CRLSelector");
    124 
    125    PKIX_TEST_EXPECT_NO_ERROR(
    126        PKIX_PL_NssContext_Create(0, PKIX_FALSE, NULL, &plContext));
    127 
    128    context = createDate(asciiDate, plContext);
    129 
    130    subTest("PKIX_CRLSelector_Create");
    131 
    132    PKIX_TEST_EXPECT_NO_ERROR(PKIX_CRLSelector_Create(NULL,
    133                                                      (PKIX_PL_Object *)context,
    134                                                      &goodObject,
    135                                                      plContext));
    136 
    137    PKIX_TEST_EXPECT_NO_ERROR(PKIX_CRLSelector_Create(NULL,
    138                                                      (PKIX_PL_Object *)context,
    139                                                      &diffObject,
    140                                                      plContext));
    141 
    142    testGetMatchCallback(goodObject);
    143 
    144    testGetCRLSelectorContext(goodObject);
    145 
    146    testCommonCRLSelectorParams(goodObject);
    147 
    148    PKIX_TEST_EQ_HASH_TOSTR_DUP(goodObject,
    149                                goodObject,
    150                                diffObject,
    151                                NULL,
    152                                CRLSelector,
    153                                PKIX_TRUE);
    154 
    155 cleanup:
    156 
    157    PKIX_TEST_DECREF_AC(goodObject);
    158    PKIX_TEST_DECREF_AC(diffObject);
    159    PKIX_TEST_DECREF_AC(context);
    160 
    161    PKIX_Shutdown(plContext);
    162 
    163    PKIX_TEST_RETURN();
    164 
    165    endTests("CRLSelector");
    166 
    167    return (0);
    168 }