Пример #1
0
static void testWebContextSecurityFileXHR(WebViewTest* test, gconstpointer)
{
    GUniquePtr<char> fileURL(g_strdup_printf("file://%s/simple.html", Test::getResourcesDir(Test::WebKit2Resources).data()));
    test->loadURI(fileURL.get());
    test->waitUntilLoadFinished();

    GUniquePtr<char> jsonURL(g_strdup_printf("file://%s/simple.json", Test::getResourcesDir().data()));
    GUniquePtr<char> xhr(g_strdup_printf("var xhr = new XMLHttpRequest; xhr.open(\"GET\", \"%s\"); xhr.send();", jsonURL.get()));

    // By default file access is not allowed, this will fail with a cross-origin error.
    GUniqueOutPtr<GError> error;
    WebKitJavascriptResult* javascriptResult = test->runJavaScriptAndWaitUntilFinished(xhr.get(), &error.outPtr());
    g_assert(!javascriptResult);
    g_assert_error(error.get(), WEBKIT_JAVASCRIPT_ERROR, WEBKIT_JAVASCRIPT_ERROR_SCRIPT_FAILED);

    // Allow file access from file URLs.
    webkit_settings_set_allow_file_access_from_file_urls(webkit_web_view_get_settings(test->m_webView), TRUE);
    test->loadURI(fileURL.get());
    test->waitUntilLoadFinished();
    javascriptResult = test->runJavaScriptAndWaitUntilFinished(xhr.get(), &error.outPtr());
    g_assert(javascriptResult);
    g_assert(!error);

    // It isn't still possible to load file from an HTTP URL.
    test->loadURI(kServer->getURIForPath("/").data());
    test->waitUntilLoadFinished();
    javascriptResult = test->runJavaScriptAndWaitUntilFinished(xhr.get(), &error.outPtr());
    g_assert(!javascriptResult);
    g_assert_error(error.get(), WEBKIT_JAVASCRIPT_ERROR, WEBKIT_JAVASCRIPT_ERROR_SCRIPT_FAILED);

    webkit_settings_set_allow_file_access_from_file_urls(webkit_web_view_get_settings(test->m_webView), FALSE);
}
Пример #2
0
void
test_flickr_error (void)
{
  RestXmlParser *parser;
  RestXmlNode *root;
  GError *error;
  const char test_1[] = "<?xml version=\"1.0\" encoding=\"utf-8\"?>"
    "<rsp stat=\"ok\"><auth></auth></rsp>";
  const char test_2[] = "<?xml version=\"1.0\" encoding=\"utf-8\"?>"
    "<foobar/>";
  const char test_3[] = "<?xml version=\"1.0\" encoding=\"utf-8\"?>"
    "<rsp stat=\"fail\"><err code=\"108\" msg=\"Invalid frob\" /></rsp>";

  parser = rest_xml_parser_new ();

  root = rest_xml_parser_parse_from_data (parser, test_1, sizeof (test_1) - 1);
  error = NULL;
  flickr_proxy_is_successful (root, &error);
  g_assert_no_error (error);
  rest_xml_node_unref (root);

  error = NULL;
  root = rest_xml_parser_parse_from_data (parser, test_2, sizeof (test_2) - 1);
  flickr_proxy_is_successful (root, &error);
  g_assert_error (error, FLICKR_PROXY_ERROR, 0);
  g_error_free (error);
  rest_xml_node_unref (root);

  error = NULL;
  root = rest_xml_parser_parse_from_data (parser, test_3, sizeof (test_3) - 1);
  flickr_proxy_is_successful (root, &error);
  g_assert_error (error, FLICKR_PROXY_ERROR, 108);
  g_error_free (error);
  rest_xml_node_unref (root);
}
static void
test_create_bad_config(void)
{
	struct election_manager_s *m = NULL;
	GError *err;

	struct replication_config_s cfg0 = { NULL, _get_peers, _get_vers,
		NULL, ELECTION_MODE_NONE};
	err = election_manager_create(&cfg0, &m);
	g_assert_error(err, GQ(), ERRCODE_PARAM);
	g_clear_error(&err);

	struct replication_config_s cfg1 = { _get_id, NULL, _get_vers,
		NULL, ELECTION_MODE_NONE};
	err = election_manager_create(&cfg1, &m);
	g_assert_error(err, GQ(), ERRCODE_PARAM);
	g_clear_error(&err);

	struct replication_config_s cfg2 = { _get_id, _get_peers, NULL,
		NULL, ELECTION_MODE_NONE};
	err = election_manager_create(&cfg2, &m);
	g_assert_error(err, GQ(), ERRCODE_PARAM);
	g_clear_error(&err);

	struct replication_config_s cfg3 = { _get_id, _get_peers, _get_vers,
		NULL, ELECTION_MODE_NONE+3};
	err = election_manager_create(&cfg3, &m);
	g_assert_error(err, GQ(), ERRCODE_PARAM);
	g_clear_error(&err);
}
Пример #4
0
static void
test_resource (void)
{
  const gchar *path;
  GError *error = NULL;
  GdkPixbuf *pixbuf, *ref;

  path = g_test_get_filename (G_TEST_DIST, "icc-profile.png", NULL);
  ref = gdk_pixbuf_new_from_file (path, &error);
  g_assert_no_error (error);

  pixbuf = gdk_pixbuf_new_from_resource ("/test/resource/icc-profile.png", &error);
  g_assert_no_error (error);
  g_assert (pixbuf_equal (pixbuf, ref));
  g_object_unref (pixbuf);
  
  pixbuf = gdk_pixbuf_new_from_resource ("/test/resource/icc-profile.pixdata", &error);
  g_assert_no_error (error);
  g_assert (pixdata_equal (pixbuf, ref));
  g_object_unref (pixbuf);

  pixbuf = gdk_pixbuf_new_from_resource ("/no/such/resource", &error);
  g_assert (pixbuf == NULL);
  g_assert_error (error, G_RESOURCE_ERROR, G_RESOURCE_ERROR_NOT_FOUND);
  g_clear_error (&error);

  pixbuf = gdk_pixbuf_new_from_resource ("resource:///test/resource/icc-profile.png", &error);
  g_assert (pixbuf == NULL);
  g_assert_error (error, G_RESOURCE_ERROR, G_RESOURCE_ERROR_NOT_FOUND);
  g_clear_error (&error);

  g_object_unref (ref);
}
Пример #5
0
static void testWebContextURIScheme(URISchemeTest* test, gconstpointer)
{
    test->registerURISchemeHandler("foo", kBarHTML, strlen(kBarHTML), "text/html");
    test->loadURI("foo:blank");
    test->waitUntilLoadFinished();
    size_t mainResourceDataSize = 0;
    const char* mainResourceData = test->mainResourceData(mainResourceDataSize);
    g_assert_cmpint(mainResourceDataSize, ==, strlen(kBarHTML));
    g_assert(!strncmp(mainResourceData, kBarHTML, mainResourceDataSize));

    test->registerURISchemeHandler("echo", kEchoHTMLFormat, -1, "text/html");
    test->loadURI("echo:hello-world");
    test->waitUntilLoadFinished();
    GUniquePtr<char> echoHTML(g_strdup_printf(kEchoHTMLFormat, webkit_uri_scheme_request_get_path(test->m_uriSchemeRequest.get())));
    mainResourceDataSize = 0;
    mainResourceData = test->mainResourceData(mainResourceDataSize);
    g_assert_cmpint(mainResourceDataSize, ==, strlen(echoHTML.get()));
    g_assert(!strncmp(mainResourceData, echoHTML.get(), mainResourceDataSize));

    test->loadURI("echo:with#fragment");
    test->waitUntilLoadFinished();
    g_assert_cmpstr(webkit_uri_scheme_request_get_path(test->m_uriSchemeRequest.get()), ==, "with");
    g_assert_cmpstr(webkit_uri_scheme_request_get_uri(test->m_uriSchemeRequest.get()), ==, "echo:with#fragment");
    echoHTML.reset(g_strdup_printf(kEchoHTMLFormat, webkit_uri_scheme_request_get_path(test->m_uriSchemeRequest.get())));
    mainResourceDataSize = 0;
    mainResourceData = test->mainResourceData(mainResourceDataSize);
    g_assert_cmpint(mainResourceDataSize, ==, strlen(echoHTML.get()));
    g_assert(!strncmp(mainResourceData, echoHTML.get(), mainResourceDataSize));

    test->registerURISchemeHandler("nomime", kBarHTML, -1, 0);
    test->m_loadEvents.clear();
    test->loadURI("nomime:foo-bar");
    test->waitUntilLoadFinished();
    g_assert(test->m_loadEvents.contains(LoadTrackingTest::ProvisionalLoadFailed));

    test->registerURISchemeHandler("empty", 0, 0, "text/html");
    test->m_loadEvents.clear();
    test->loadURI("empty:nothing");
    test->waitUntilLoadFinished();
    g_assert(!test->m_loadEvents.contains(LoadTrackingTest::ProvisionalLoadFailed));
    g_assert(!test->m_loadEvents.contains(LoadTrackingTest::LoadFailed));

    test->registerURISchemeHandler("error", 0, 0, 0);
    test->m_loadEvents.clear();
    test->loadURI("error:error");
    test->waitUntilLoadFinished();
    g_assert(test->m_loadEvents.contains(LoadTrackingTest::ProvisionalLoadFailed));
    g_assert(test->m_loadFailed);
    g_assert_error(test->m_error.get(), g_quark_from_string(errorDomain), errorCode);
    g_assert_cmpstr(test->m_error->message, ==, errorMessage);

    test->registerURISchemeHandler("closed", 0, 0, 0);
    test->m_loadEvents.clear();
    test->loadURI("closed:input-stream");
    test->waitUntilLoadFinished();
    g_assert(test->m_loadEvents.contains(LoadTrackingTest::ProvisionalLoadFailed));
    g_assert(test->m_loadFailed);
    g_assert_error(test->m_error.get(), G_IO_ERROR, G_IO_ERROR_CLOSED);
}
Пример #6
0
static void
get_system_language (void)
{
  GwLanguage *language;
  GError *error;
  gboolean system_language_set;

  /* Set a random language if host system has none set */
  system_language_set = gw_get_system_language (NULL, NULL);

  /* Create the language */
  error = NULL;
  language = gw_language_new_sync (NULL, NULL, &error);

  if (!system_language_set)
    {
      g_assert_error (error, GW_LANGUAGE_ERROR, GW_LANGUAGE_ERROR_INVALID);
      g_assert_null (language);
    }
  else
    {
      g_message ("Language: %s", gw_language_get_language_code (language));

      g_assert_nonnull (language);
      g_assert_no_error (error);

      g_clear_object (&language);
    }

  g_clear_object (&language);
}
static void
post_auth_recv_stanza (GObject *source,
  GAsyncResult *result,
  gpointer user_data)
{
  WockyStanza *stanza;
  GError *e = NULL;

  /* ignore all stanza until close */
  stanza = wocky_xmpp_connection_recv_stanza_finish (
    WOCKY_XMPP_CONNECTION (source), result, &e);

  if (stanza != NULL)
    {
      g_object_unref (stanza);
      wocky_xmpp_connection_recv_stanza_async (
          WOCKY_XMPP_CONNECTION (source), NULL,
          post_auth_recv_stanza, user_data);
    }
  else
    {
      g_assert_error (e, WOCKY_XMPP_CONNECTION_ERROR,
          WOCKY_XMPP_CONNECTION_ERROR_CLOSED);

      g_error_free (e);

      run_done = TRUE;
      g_main_loop_quit (mainloop);
    }
}
Пример #8
0
static void
test_invalid_bareword (gconstpointer user_data)
{
  const char *json = user_data;
  GError *error = NULL;
  JsonParser *parser;
  gboolean res;

  parser = json_parser_new ();
  g_assert (JSON_IS_PARSER (parser));

  if (g_test_verbose ())
    g_print ("invalid data: '%s'...", json);

  res = json_parser_load_from_data (parser, json, -1, &error);

  g_assert (!res);
  g_assert_error (error, JSON_PARSER_ERROR, JSON_PARSER_ERROR_INVALID_BAREWORD);

  if (g_test_verbose ())
    g_print ("expected error: %s\n", error->message);

  g_clear_error (&error);

  g_object_unref (parser);
}
Пример #9
0
static void
system_language_loaded_cb (GObject      *source_object,
                           GAsyncResult *res,
                           gpointer      user_data)
{
  GwLanguage *language;
  GMainLoop *mainloop;
  GError *error;
  gboolean system_language_set;

  /* Set a random language if host system has none set */
  system_language_set = gw_get_system_language (NULL, NULL);

  error = NULL;
  mainloop = user_data;
  language = gw_language_new_finish (res, &error);

  if (!system_language_set)
    {
      g_assert_error (error, GW_LANGUAGE_ERROR, GW_LANGUAGE_ERROR_INVALID);
      g_assert_null (language);
    }
  else
    {
      g_message ("Language: %s", gw_language_get_language_code (language));

      g_assert_nonnull (language);
      g_assert_no_error (error);

      g_clear_object (&language);
    }

  g_main_loop_quit (mainloop);

}
static void
_round_lock(sqlx_cache_t *cache)
{
	hashstr_t *hn0 = NULL, *hn1 = NULL;
	HASHSTR_ALLOCA(hn0, name0);
	HASHSTR_ALLOCA(hn1, name1);

	gint id0;
	GError *err = sqlx_cache_open_and_lock_base(cache, hn0, &id0);
	g_assert_no_error (err);

	for (int i=0; i<5 ;i++) {
		gint id = g_random_int();
		err = sqlx_cache_open_and_lock_base(cache, hn0, &id);
		g_assert_no_error (err);
		g_assert_cmpint(id0, ==, id);
	}
	for (int i=0; i<6 ;i++) {
		err = sqlx_cache_unlock_and_close_base(cache, id0, FALSE);
		g_assert_no_error (err);
	}
	err = sqlx_cache_unlock_and_close_base(cache, id0, FALSE);
	g_assert_error (err, GQ(), CODE_INTERNAL_ERROR);
	g_clear_error (&err);

	for (int i=0; i<5 ;i++) {
		gint id = g_random_int ();
		err = sqlx_cache_open_and_lock_base(cache, hn1, &id);
		g_assert_no_error (err);
		err = sqlx_cache_unlock_and_close_base(cache, id, FALSE);
		g_assert_no_error (err);
	}
}
static void test_cr_metadata_locate_and_load_xml(void)
{
    test_helper_check_keys(TEST_REPO_00, CR_HT_KEY_HASH, REPO_SIZE_00, REPO_HASH_KEYS_00);
    test_helper_check_keys(TEST_REPO_00, CR_HT_KEY_NAME, REPO_SIZE_00, REPO_NAME_KEYS_00);
    test_helper_check_keys(TEST_REPO_00, CR_HT_KEY_FILENAME, REPO_SIZE_00, REPO_FILENAME_KEYS_00);

    test_helper_check_keys(TEST_REPO_01, CR_HT_KEY_HASH, REPO_SIZE_01, REPO_HASH_KEYS_01);
    test_helper_check_keys(TEST_REPO_01, CR_HT_KEY_NAME, REPO_SIZE_01, REPO_NAME_KEYS_01);
    test_helper_check_keys(TEST_REPO_01, CR_HT_KEY_FILENAME, REPO_SIZE_01, REPO_FILENAME_KEYS_01);

    test_helper_check_keys(TEST_REPO_02, CR_HT_KEY_HASH, REPO_SIZE_02, REPO_HASH_KEYS_02);
    test_helper_check_keys(TEST_REPO_02, CR_HT_KEY_NAME, REPO_SIZE_02, REPO_NAME_KEYS_02);
    test_helper_check_keys(TEST_REPO_02, CR_HT_KEY_FILENAME, REPO_SIZE_02, REPO_FILENAME_KEYS_02);

#ifdef WITH_LIBMODULEMD
    test_helper_check_keys(TEST_REPO_03, CR_HT_KEY_HASH, REPO_SIZE_03, REPO_HASH_KEYS_03);
    test_helper_check_keys(TEST_REPO_03, CR_HT_KEY_NAME, REPO_SIZE_03, REPO_NAME_KEYS_03);
    test_helper_check_keys(TEST_REPO_03, CR_HT_KEY_FILENAME, REPO_SIZE_03, REPO_FILENAME_KEYS_03);
#else
    /* If we don't have libmodulemd support, this should fail to locate and
     * return CRE_MODULEMD
     */
    struct cr_MetadataLocation *ml;
    g_autoptr (GError) err = NULL;

    ml = cr_locate_metadata(TEST_REPO_03, TRUE, &err);
    g_assert_error (err, CREATEREPO_C_ERROR, CRE_MODULEMD);
#endif /* WITH_LIBMODULEMD */
}
Пример #12
0
void TestNewForUser() {
  gchar *policy1_path = CacheTestGetDataPath("policy1.conf");
  gchar *policy2_path = CacheTestGetDataPath("policy2.conf");
  gchar *policy_paths [] = {policy1_path, policy2_path, NULL};
  GError *error = NULL;
  CachePolicy *policy = NULL;

  policy = CachePolicyNewForUser("janedoe", policy_paths, &error);
  g_assert_no_error(error);
  g_assert(policy);
  g_assert_cmpint(5, ==, policy->max_tries);
  CachePolicyUnref(policy);

  policy = CachePolicyNewForUser("johndoe", policy_paths, &error);
  g_assert_no_error(error);
  g_assert(policy);
  g_assert_cmpint(0, ==, policy->max_tries);
  CachePolicyUnref(policy);

  policy = CachePolicyNewForUser("nope", policy_paths, &error);
  g_assert(!policy);
  g_assert_error(error, CACHE_POLICY_ERROR, CACHE_POLICY_UNKNOWN_USER_ERROR);
  g_error_free(error);

  g_free(policy1_path);
  g_free(policy2_path);
}
static void
test_notnull (void)
{
  GomAdapter *adapter;
  GomRepository *repository;
  GList *object_types;
  ItemResource *item;

  GError *error = NULL;

  adapter = gom_adapter_new();
  gom_adapter_open_sync(adapter, ":memory:", &error);
  g_assert_no_error(error);

  repository = gom_repository_new(adapter);
  object_types = g_list_prepend(NULL, GINT_TO_POINTER(ITEM_TYPE_RESOURCE));
  gom_repository_automatic_migrate_sync(repository, 1, object_types, &error);
  g_assert_no_error(error);

  /* Insert an item without a name */
  item = g_object_new (ITEM_TYPE_RESOURCE, "repository", repository,
                       "email", "*****@*****.**",
                       NULL);
  gom_resource_save_sync(GOM_RESOURCE(item), &error);
  g_assert_error(error, GOM_ERROR, GOM_ERROR_COMMAND_SQLITE);
  g_assert (strstr (error->message, "NOT NULL") != NULL);
  g_assert (strstr (error->message, "items.name") != NULL);
  g_clear_error(&error);
  g_object_unref(item);

  /* Try inserting an item without an email */
  item = g_object_new (ITEM_TYPE_RESOURCE, "repository", repository,
                       "name", "gom",
                       NULL);
  gom_resource_save_sync(GOM_RESOURCE(item), &error);
  g_assert_error(error, GOM_ERROR, GOM_ERROR_COMMAND_SQLITE);
  g_assert (strstr (error->message, "NOT NULL") != NULL);
  g_assert (strstr (error->message, "items.email") != NULL);
  g_clear_error(&error);
  g_object_unref(item);

  gom_adapter_close_sync(adapter, &error);
  g_assert_no_error(error);

  g_object_unref(repository);
  g_object_unref(adapter);
}
Пример #14
0
static void onSnapshotReady(WebKitWebView* web_view, GAsyncResult* res, WebViewTest* test)
{
    GOwnPtr<GError> error;
    test->m_surface = webkit_web_view_get_snapshot_finish(web_view, res, &error.outPtr());
    g_assert(!test->m_surface || !error.get());
    if (error)
        g_assert_error(error.get(), WEBKIT_SNAPSHOT_ERROR, WEBKIT_SNAPSHOT_ERROR_FAILED_TO_CREATE);
    test->quitMainLoop();
}
static void
run_test (gconstpointer user_data)
{
  TestSaslAuthServer *server;
  WockyTestStream *stream;
  test_t *test = (test_t *) user_data;

  stream = g_object_new (WOCKY_TYPE_TEST_STREAM, NULL);

  server = test_sasl_auth_server_new (stream->stream0, test->mech,
      test->username, test->password, test->servername, test->problem, TRUE);

  authenticated = FALSE;
  run_done = FALSE;
  current_test = test;

  xmpp_connection = stream->stream1;
  conn = wocky_xmpp_connection_new (xmpp_connection);

  wocky_xmpp_connection_send_open_async (conn,
    test->servername, NULL, "1.0", NULL, NULL,
    NULL, stream_open_sent, test);

  if (!run_done)
    {
      g_main_loop_run (mainloop);
    }

  if (sasl != NULL)
    {
      g_object_unref (sasl);
      sasl = NULL;
    }

  test_sasl_auth_server_stop (server);

  g_object_unref (server);
  g_object_unref (stream);
  g_object_unref (conn);

  if (test->domain == 0)
    {
      g_assert (authenticated);
      g_assert_no_error (error);
    }
  else
    {
      g_assert (!authenticated);
      g_assert_error (error, test->domain, test->code);
    }

  if (error != NULL)
    g_error_free (error);

  error = NULL;
}
Пример #16
0
void TestSetValue() {
  CachePolicy *policy = CachePolicyNew();
  GError *error = NULL;

  g_assert_cmpint(0, ==, policy->max_tries);
  g_assert(CachePolicySetValue(policy, "tries", "5", &error));
  g_assert_no_error(error);
  g_assert_cmpint(5, ==, policy->max_tries);

  g_assert(!CachePolicySetValue(policy, "tries", "nope", &error));
  g_assert_error(error, CACHE_POLICY_ERROR, CACHE_POLICY_INVALID_VALUE_ERROR);
  g_assert_cmpint(5, ==, policy->max_tries);
  g_error_free(error);
  error = NULL;

  g_assert_cmpint(0, ==, policy->refresh_before);
  g_assert(CachePolicySetValue(policy, "refresh", "2d", &error));
  g_assert_no_error(error);
  g_assert_cmpint(2*G_TIME_SPAN_DAY, ==, policy->refresh_before);

  g_assert(!CachePolicySetValue(policy, "refresh", "5days", &error));
  g_assert_error(error, CACHE_POLICY_ERROR, CACHE_POLICY_INVALID_VALUE_ERROR);
  g_assert_cmpint(2*G_TIME_SPAN_DAY, ==, policy->refresh_before);
  g_error_free(error);
  error = NULL;

  g_assert_cmpint(0, ==, policy->renew_after);
  g_assert(CachePolicySetValue(policy, "renew", "1w", &error));
  g_assert_no_error(error);
  g_assert_cmpint(7*G_TIME_SPAN_DAY, ==, policy->renew_after);

  g_assert_cmpint(0, ==, policy->expire_after);
  g_assert(CachePolicySetValue(policy, "expire", "3w", &error));
  g_assert_no_error(error);
  g_assert_cmpint(3*7*G_TIME_SPAN_DAY, ==, policy->expire_after);

  g_assert(!CachePolicySetValue(policy, "nope", "1", &error));
  g_assert_error(error, CACHE_POLICY_ERROR, CACHE_POLICY_UNKNOWN_KEY_ERROR);
  g_error_free(error);

  CachePolicyUnref(policy);
}
Пример #17
0
static void
test_invalid_modules (Test *test, gconstpointer unused)
{
	GckModule *invalid;
	GError *error = NULL;

	/* Shouldn't be able to load modules */
	invalid = gck_module_initialize ("blah-blah-non-existant", NULL, &error);
	g_assert_error (error, GCK_ERROR, (int)CKR_GCK_MODULE_PROBLEM);
	g_assert (invalid == NULL);

	g_clear_error (&error);

	/* Shouldn't be able to load any file successfully */
	invalid = gck_module_initialize ("/usr/lib/libm.so", NULL, &error);
	g_assert_error (error, GCK_ERROR, (int)CKR_GCK_MODULE_PROBLEM);
	g_assert (invalid == NULL);

	g_clear_error (&error);
}
Пример #18
0
static void test_decode_nval(void)
{
	GObexPacket *pkt;
	GError *err = NULL;

	pkt = g_obex_packet_decode(pkt_nval_len, sizeof(pkt_nval_len), 0,
						G_OBEX_DATA_REF, &err);
	g_assert_error(err, G_OBEX_ERROR, G_OBEX_ERROR_PARSE_ERROR);
	g_assert(pkt == NULL);

	g_error_free(err);
}
Пример #19
0
static void decode_header_nval(uint8_t *buf, size_t len)
{
	GObexHeader *header;
	size_t parsed;
	GError *err = NULL;

	header = g_obex_header_decode(buf, len, G_OBEX_DATA_REF, &parsed,
									&err);
	g_assert_error(err, G_OBEX_ERROR, G_OBEX_ERROR_PARSE_ERROR);
	g_assert(header == NULL);
	g_error_free(err);
}
Пример #20
0
static void
test_pipefrom_version(struct cfg_s *cfg0, struct cfg_s *cfg1, gint64 r)
{
	gint64 worst = 0;
	GTree *v0 = build_version(cfg0);
	GTree *v1 = build_version(cfg1);
	GError *err = version_validate_diff(v0, v1, &worst);
	g_assert_error(err, GQD("sqliterepo"), CODE_PIPEFROM);
	g_assert(r == worst);
	g_tree_destroy(v0);
	g_tree_destroy(v1);
}
Пример #21
0
static void
test_concurrent_version(struct cfg_s *cfg0, struct cfg_s *cfg1)
{
	gint64 worst = 0;
	GTree *v0 = build_version(cfg0);
	GTree *v1 = build_version(cfg1);
	GError *err = version_validate_diff(v0, v1, &worst);
	g_assert_error(err, GQD("sqliterepo"), CODE_CONCURRENT);
	g_assert(0 == worst);
	g_tree_destroy(v0);
	g_tree_destroy(v1);
}
Пример #22
0
static void checksum_test1(void)
{
	RaucChecksum checksum = {};
	GError *error = NULL;

	checksum.type = 0;
	checksum.digest = NULL;
	g_assert_false(verify_checksum(&checksum, "test/install-content/appfs.img", &error));
	g_assert_error(error, R_CHECKSUM_ERROR, R_CHECKSUM_ERROR_FAILED);
	g_clear_error(&error);

	checksum.type = G_CHECKSUM_SHA256;
	checksum.digest = g_strdup(TEST_DIGEST_FAIL);
	g_assert_false(verify_checksum(&checksum, "test/install-content/appfs.img", &error));
	g_assert_error(error, R_CHECKSUM_ERROR, R_CHECKSUM_ERROR_SIZE_MISMATCH);
	g_clear_error(&error);

	checksum.size = 32768;
	g_assert_false(verify_checksum(&checksum, "test/install-content/appfs.img", &error));
	g_assert_error(error, R_CHECKSUM_ERROR, R_CHECKSUM_ERROR_DIGEST_MISMATCH);
	g_clear_error(&error);

	checksum.size = 0;
	checksum.digest = g_strdup(TEST_DIGEST_GOOD);
	g_assert_false(verify_checksum(&checksum, "test/install-content/appfs.img", &error));
	g_assert_error(error, R_CHECKSUM_ERROR, R_CHECKSUM_ERROR_SIZE_MISMATCH);
	g_clear_error(&error);

	checksum.size = 32768;
	g_assert_true(verify_checksum(&checksum, "test/install-content/appfs.img", &error));
	g_assert_no_error(error);

	g_assert_false(verify_checksum(&checksum, "tesinstall-content/rootfs.img", &error));
	g_assert_error(error, G_FILE_ERROR, G_FILE_ERROR_NOENT);
	g_clear_error(&error);

	g_assert_false(verify_checksum(&checksum, "test/_MISSING_", &error));
	g_assert_error(error, G_FILE_ERROR, G_FILE_ERROR_NOENT);
	g_clear_error(&error);

	g_clear_pointer(&checksum.digest, g_free);
	checksum.size = 0;
	g_assert_true(compute_checksum(&checksum, "test/install-content/appfs.img", &error));
	g_assert_no_error(error);
	g_assert_cmpstr(checksum.digest, ==, TEST_DIGEST_GOOD);
	g_assert(checksum.size == 32768);

	g_clear_pointer(&checksum.digest, g_free);
	checksum.size = 0;
	g_assert_false(compute_checksum(&checksum, "tesinstall-content/rootfs.img", &error));
	g_assert_error(error, G_FILE_ERROR, G_FILE_ERROR_NOENT);
	g_clear_error(&error);
	g_assert_null(checksum.digest);
	g_assert(checksum.size == 0);
}
Пример #23
0
static void testWebContextLanguages(WebViewTest* test, gconstpointer)
{
    static const char* expectedDefaultLanguage = "en-US";
    test->loadURI(kServer->getURIForPath("/").data());
    test->waitUntilLoadFinished();
    size_t mainResourceDataSize = 0;
    const char* mainResourceData = test->mainResourceData(mainResourceDataSize);
    g_assert_cmpuint(mainResourceDataSize, ==, strlen(expectedDefaultLanguage));
    g_assert(!strncmp(mainResourceData, expectedDefaultLanguage, mainResourceDataSize));

    GRefPtr<GPtrArray> languages = adoptGRef(g_ptr_array_new());
    g_ptr_array_add(languages.get(), const_cast<gpointer>(static_cast<const void*>("en")));
    g_ptr_array_add(languages.get(), const_cast<gpointer>(static_cast<const void*>("ES_es")));
    g_ptr_array_add(languages.get(), const_cast<gpointer>(static_cast<const void*>("dE")));
    g_ptr_array_add(languages.get(), 0);
    webkit_web_context_set_preferred_languages(test->m_webContext.get(), reinterpret_cast<const char* const*>(languages->pdata));

    static const char* expectedLanguages = "en, es-es;q=0.90, de;q=0.80";
    test->loadURI(kServer->getURIForPath("/").data());
    test->waitUntilLoadFinished();
    mainResourceDataSize = 0;
    mainResourceData = test->mainResourceData(mainResourceDataSize);
    g_assert_cmpuint(mainResourceDataSize, ==, strlen(expectedLanguages));
    g_assert(!strncmp(mainResourceData, expectedLanguages, mainResourceDataSize));

    // When using the C locale, en-US should be used as default.
    const char* cLanguage[] = { "C", nullptr };
    webkit_web_context_set_preferred_languages(test->m_webContext.get(), cLanguage);
    GUniqueOutPtr<GError> error;
    WebKitJavascriptResult* javascriptResult = test->runJavaScriptAndWaitUntilFinished("Intl.DateTimeFormat().resolvedOptions().locale", &error.outPtr());
    g_assert(javascriptResult);
    g_assert(!error);
    GUniquePtr<char> locale(WebViewTest::javascriptResultToCString(javascriptResult));
    g_assert_cmpstr(locale.get(), ==, expectedDefaultLanguage);

    // When using the POSIX locale, en-US should be used as default.
    const char* posixLanguage[] = { "POSIX", nullptr };
    webkit_web_context_set_preferred_languages(test->m_webContext.get(), posixLanguage);
    javascriptResult = test->runJavaScriptAndWaitUntilFinished("Intl.DateTimeFormat().resolvedOptions().locale", &error.outPtr());
    g_assert(javascriptResult);
    g_assert(!error);
    locale.reset(WebViewTest::javascriptResultToCString(javascriptResult));
    g_assert_cmpstr(locale.get(), ==, expectedDefaultLanguage);

    // An invalid locale should throw an exception.
    const char* invalidLanguage[] = { "A", nullptr };
    webkit_web_context_set_preferred_languages(test->m_webContext.get(), invalidLanguage);
    javascriptResult = test->runJavaScriptAndWaitUntilFinished("Intl.DateTimeFormat().resolvedOptions().locale", &error.outPtr());
    g_assert(!javascriptResult);
    g_assert_error(error.get(), WEBKIT_JAVASCRIPT_ERROR, WEBKIT_JAVASCRIPT_ERROR_SCRIPT_FAILED);
}
Пример #24
0
static void ssh_args(void) {
	GError *err = NULL;
	gchar *valid_args[] = {
		"connecttimeout=5",
		"KexAlgorithms=ssh",
		"LogLevel=foo",
		"hostkeyalgorithms=bar",
		"compression =zlib",
		"GSSAPIDelegateCredentials=asdf",
		NULL
	};

	g_assert(! wsh_ssh_check_args(valid_args, &err));
	g_assert_no_error(err);


	gchar *invalid_args[] = {
		"connecttimeout",
		NULL,
	};

	g_assert(wsh_ssh_check_args(invalid_args, &err));
	g_assert_error(err, WSH_SSH_ERROR, WSH_SSH_OPT_INVALID);

	gchar *notsupp_args[] = {
		"foo=5",
		NULL
	};

	g_assert(wsh_ssh_check_args(notsupp_args, &err));
	g_assert_error(err, WSH_SSH_ERROR, WSH_SSH_OPT_NOT_SUPPORTED);

	gchar *no_args[] = {
		NULL
	};

	g_assert(! wsh_ssh_check_args(no_args, &err));
}
Пример #25
0
void TestGetMissingEntry() {
  CacheTestInitFiles();

  CacheStorage *storage = CacheStorageNew("/mock");
  g_assert(storage);

  GError *error = NULL;
  CacheEntry *entry = CacheStorageGetEntry(storage, "testuser", &error);
  g_assert(!entry);
  g_assert_error(error, CACHE_STORAGE_ERROR, CACHE_STORAGE_FILE_ERROR);

  g_error_free(error);
  CacheStorageUnref(storage);
}
Пример #26
0
void TestGetInvalidUsername() {
  CacheTestInitFiles();

  CacheStorage *storage = CacheStorageNew("/mock");
  g_assert(storage);

  GError *error = NULL;
  CacheEntry *entry = CacheStorageGetEntry(storage, "../testuser", &error);
  g_assert(!entry);
  g_assert_error(error, CACHE_STORAGE_ERROR, CACHE_STORAGE_USERNAME_ERROR);

  g_error_free(error);
  CacheStorageUnref(storage);
}
Пример #27
0
static void
on_connected_cancelled (GObject      *source_object,
                        GAsyncResult *result,
                        gpointer      user_data)
{
  GSocketConnection *conn;
  GError *error = NULL;

  conn = g_socket_client_connect_to_uri_finish (G_SOCKET_CLIENT (source_object), result, &error);
  g_assert_error (error, G_IO_ERROR, G_IO_ERROR_CANCELLED);
  g_assert_null (conn);

  g_error_free (error);
  g_main_loop_quit (user_data);
}
static void
test_remove_object_empty_uid (ETestServerFixture *fixture,
                              gconstpointer user_data)
{
	ECalClient *cal_client;
	GError *error = NULL;

	g_test_bug ("697705");

	cal_client = E_TEST_SERVER_UTILS_SERVICE (fixture, ECalClient);

	e_cal_client_remove_object_sync (
		cal_client, "", NULL, E_CAL_OBJ_MOD_ALL, NULL, &error);
	g_assert_error (
		error, E_CAL_CLIENT_ERROR,
		E_CAL_CLIENT_ERROR_OBJECT_NOT_FOUND);
}
Пример #29
0
static void
test_connection_loss (void)
{
  GDBusProxy *proxy;
  GError *error;

  error = NULL;
  proxy = g_dbus_proxy_new_sync (c,
                                 G_DBUS_PROXY_FLAGS_NONE,
                                 NULL,                      /* GDBusInterfaceInfo */
                                 "com.example.TestService", /* name */
                                 "/com/example/TestObject", /* object path */
                                 "com.example.Frob",        /* interface */
                                 NULL, /* GCancellable */
                                 &error);
  g_assert_no_error (error);

  error = NULL;
  g_dbus_proxy_call (proxy,
                     "Sleep",
                     g_variant_new ("(i)", 100 * 1000 /* msec */),
                     G_DBUS_CALL_FLAGS_NONE,
                     10 * 1000 /* msec */,
                     NULL, /* GCancellable */
                     sleep_cb,
                     &error);

  /* Make sure we don't exit when the bus goes away */
  g_dbus_connection_set_exit_on_close (c, FALSE);

  /* Nuke the connection to the bus */
  g_timeout_add (100 /* ms */, on_timeout, NULL);

  g_main_loop_run (loop);

  /* If we didn't act on connection-loss we'd be getting G_IO_ERROR_TIMEOUT
   * generated locally. So if we get G_IO_ERROR_CLOSED it means that we
   * are acting correctly on connection loss.
   */
  g_assert_error (error, G_IO_ERROR, G_IO_ERROR_CLOSED);
  g_assert (!g_dbus_error_is_remote_error (error));
  g_clear_error (&error);

  g_object_unref (proxy);
}
Пример #30
0
static void test_govirt_https_ca(void)
{
    OvirtProxy *proxy;
    OvirtApi *api;
    GError *error = NULL;
    GovirtMockHttpd *httpd;

    httpd = govirt_mock_httpd_new(GOVIRT_HTTPS_PORT);
    govirt_mock_httpd_add_request(httpd, "GET", "/ovirt-engine/api", "<api></api>");
    govirt_mock_httpd_start(httpd);

    g_setenv("GOVIRT_NO_SSL_STRICT", "1", TRUE);
    g_test_expect_message("libgovirt", G_LOG_LEVEL_WARNING,
                          "Disabling strict checking of SSL certificates");
    g_test_expect_message("libgovirt", G_LOG_LEVEL_CRITICAL,
                          "ovirt_proxy_set_api_from_xml: assertion 'vms != NULL' failed");
    proxy = ovirt_proxy_new("localhost:" G_STRINGIFY(GOVIRT_HTTPS_PORT));
    api = ovirt_proxy_fetch_api(proxy, &error);
    g_test_assert_expected_messages();
    g_assert_nonnull(api);
    g_assert_no_error(error);
    g_object_unref(proxy);
    g_unsetenv("GOVIRT_NO_SSL_STRICT");

    g_test_expect_message("libgovirt", G_LOG_LEVEL_WARNING,
                          "Error while getting collection: Unacceptable TLS certificate");
    proxy = ovirt_proxy_new("localhost:" G_STRINGIFY(GOVIRT_HTTPS_PORT));
    api = ovirt_proxy_fetch_api(proxy, &error);
    g_test_assert_expected_messages();
    g_assert_null(api);
    g_assert_error(error, REST_PROXY_ERROR, REST_PROXY_ERROR_SSL);
    g_assert_cmpstr(error->message, ==, "Unacceptable TLS certificate");
    g_clear_error(&error);

    g_test_expect_message("libgovirt", G_LOG_LEVEL_CRITICAL,
                          "ovirt_proxy_set_api_from_xml: assertion 'vms != NULL' failed");
    ovirt_proxy_set_mock_ca(proxy);
    api = ovirt_proxy_fetch_api(proxy, &error);
    g_test_assert_expected_messages();
    g_assert_nonnull(api);
    g_assert_no_error(error);
    g_clear_object(&proxy);

    govirt_mock_httpd_stop(httpd);
}