예제 #1
0
END_TEST

START_TEST(getCASTicket_test) {
  char *args = "foo=bar&ticket=ST-1234&baz=zot", *rv;
  const char *expected = "ST-1234";
  request->args = apr_pstrdup(request->pool, args);
  rv = getCASTicket(request);
  fail_unless(strcmp(rv, expected) == 0);
}
END_TEST

START_TEST(getCASTicket_test) {
  char *args = "foo=bar&ticket=ST-1234&baz=zot";
  char *dupargs = "foo=bar&ticket=ST-^<>&baz=zot&ticket=ST-1234";
  char *badargs = "foo=bar&ticket=ST-^<>&baz=zot";
  char *emptyargs = "";
  char *truncated_args = "ST-";
  char *rv;
  const char *expected = "ST-1234";


  request->args = apr_pstrdup(request->pool, args);
  rv = getCASTicket(request);
  fail_unless(strcmp(rv, expected) == 0);

  request->args = apr_pstrdup(request->pool, dupargs);
  rv = getCASTicket(request);
  fail_unless(strcmp(rv, expected) == 0);

  request->args = apr_pstrdup(request->pool, badargs);
  rv = getCASTicket(request);
  fail_unless(rv == NULL);

  request->args = apr_pstrdup(request->pool, emptyargs);
  rv = getCASTicket(request);
  fail_unless(rv == NULL);

  request->args = apr_pstrdup(request->pool, truncated_args);
  rv = getCASTicket(request);
  fail_unless(rv == NULL);

  request->args = NULL;
  rv = getCASTicket(request);
  fail_unless(rv == NULL);
}