aboutsummaryrefslogtreecommitdiff
From 7c635516813a34aa7fb6d3192d3b55ba219aa5c1 Mon Sep 17 00:00:00 2001
From: Alessandro Astone <alessandro.astone@canonical.com>
Date: Tue, 17 Sep 2024 12:10:22 +0200
Subject: [PATCH] tests: JSON strings should use double-quotes

libjson-glib allowed single-quotes up until 1.10.0;
change all the hard-coded json string literals to use double-quotes.

Fixes: #50
---
 gdata/tests/calendar.c | 316 ++++++++--------
 gdata/tests/general.c  |  38 +-
 gdata/tests/streams.c  |  46 +--
 gdata/tests/youtube.c  | 806 ++++++++++++++++++++---------------------
 4 files changed, 603 insertions(+), 603 deletions(-)

diff --git a/gdata/tests/calendar.c b/gdata/tests/calendar.c
index a3302dee..d7807633 100644
--- a/gdata/tests/calendar.c
+++ b/gdata/tests/calendar.c
@@ -615,35 +615,35 @@ test_event_json (void)
 
 	/* Check the JSON */
 	gdata_test_assert_json (event, "{"
-		"'summary': 'Tennis with Beth',"
-		"'description': 'Meet for a quick lesson.',"
-		"'kind': 'calendar#event',"
-		"'status': 'confirmed',"
-		"'transparency': 'opaque',"
-		"'guestsCanModify': false,"
-		"'guestsCanInviteOthers': false,"
-		"'guestsCanSeeOtherGuests': false,"
-		"'anyoneCanAddSelf': false,"
-		"'start': {"
-			"'dateTime': '2009-04-17T15:00:00Z',"
-			"'timeZone': 'UTC'"
+		"\"summary\": \"Tennis with Beth\","
+		"\"description\": \"Meet for a quick lesson.\","
+		"\"kind\": \"calendar#event\","
+		"\"status\": \"confirmed\","
+		"\"transparency\": \"opaque\","
+		"\"guestsCanModify\": false,"
+		"\"guestsCanInviteOthers\": false,"
+		"\"guestsCanSeeOtherGuests\": false,"
+		"\"anyoneCanAddSelf\": false,"
+		"\"start\": {"
+			"\"dateTime\": \"2009-04-17T15:00:00Z\","
+			"\"timeZone\": \"UTC\""
 		"},"
-		"'end': {"
-			"'dateTime': '2009-04-17T17:00:00Z',"
-			"'timeZone': 'UTC'"
+		"\"end\": {"
+			"\"dateTime\": \"2009-04-17T17:00:00Z\","
+			"\"timeZone\": \"UTC\""
 		"},"
-		"'attendees': ["
+		"\"attendees\": ["
 			"{"
-				"'email': 'john.smith@example.com',"
-				"'displayName': 'John Smith‽',"
-				"'organizer': true"
+				"\"email\": \"john.smith@example.com\","
+				"\"displayName\": \"John Smith‽\","
+				"\"organizer\": true"
 			"}"
 		"],"
-		"'organizer': {"
-			"'email': 'john.smith@example.com',"
-			"'displayName': 'John Smith‽'"
+		"\"organizer\": {"
+			"\"email\": \"john.smith@example.com\","
+			"\"displayName\": \"John Smith‽\""
 		"},"
-		"'location': 'Rolling Lawn Courts'"
+		"\"location\": \"Rolling Lawn Courts\""
 	"}");
 }
 
@@ -668,45 +668,45 @@ test_event_json_attendees (void)
 	GError *error = NULL;
 
 	event = GDATA_CALENDAR_EVENT (gdata_parsable_new_from_json (GDATA_TYPE_CALENDAR_EVENT, "{"
-		"'kind': 'calendar#event',"
-		"'id': 'some-id',"
-		"'created': '2017-02-04T17:53:47.000Z',"
-		"'summary': 'Duff this',"
-		"'organizer': {"
-			"'email': 'blah@example.com',"
-			"'displayName': 'Ruth Pettut'"
+		"\"kind\": \"calendar#event\","
+		"\"id\": \"some-id\","
+		"\"created\": \"2017-02-04T17:53:47.000Z\","
+		"\"summary\": \"Duff this\","
+		"\"organizer\": {"
+			"\"email\": \"blah@example.com\","
+			"\"displayName\": \"Ruth Pettut\""
 		"},"
-		"'attendees': ["
+		"\"attendees\": ["
 			"{"
-				"'email': 'person1@gmail.com',"
-				"'displayName': 'Joe Hibbs',"
-				"'responseStatus': 'accepted'"
+				"\"email\": \"person1@gmail.com\","
+				"\"displayName\": \"Joe Hibbs\","
+				"\"responseStatus\": \"accepted\""
 			"},"
 			"{"
-				"'email': 'me@gmail.com',"
-				"'displayName': 'Me McMeeson',"
-				"'self': true,"
-				"'responseStatus': 'needsAction'"
+				"\"email\": \"me@gmail.com\","
+				"\"displayName\": \"Me McMeeson\","
+				"\"self\": true,"
+				"\"responseStatus\": \"needsAction\""
 			"},"
 			"{"
-				"'email': 'person2@gmail.com',"
-				"'responseStatus': 'needsAction'"
+				"\"email\": \"person2@gmail.com\","
+				"\"responseStatus\": \"needsAction\""
 			"},"
 			"{"
-				"'email': 'person3@gmail.com',"
-				"'displayName': 'Example Person 3',"
-				"'responseStatus': 'tentative',"
-				"'comment': 'Some poor excuse about not coming.'"
+				"\"email\": \"person3@gmail.com\","
+				"\"displayName\": \"Example Person 3\","
+				"\"responseStatus\": \"tentative\","
+				"\"comment\": \"Some poor excuse about not coming.\""
 			"},"
 			"{"
-				"'email': 'person4@gmail.com',"
-				"'responseStatus': 'accepted'"
+				"\"email\": \"person4@gmail.com\","
+				"\"responseStatus\": \"accepted\""
 			"},"
 			"{"
-				"'email': 'blah@example.com',"
-				"'displayName': 'Ruth Pettut',"
-				"'organizer': true,"
-				"'responseStatus': 'accepted'"
+				"\"email\": \"blah@example.com\","
+				"\"displayName\": \"Ruth Pettut\","
+				"\"organizer\": true,"
+				"\"responseStatus\": \"accepted\""
 			"}"
 		"]"
 	"}", -1, &error));
@@ -754,38 +754,38 @@ test_event_json_dates (void)
 		const gchar *output_json;  /* NULL if equal to @json */
 	} test_vectors[] = {
 		/* Plain date, single day. */
-		{ "'start': {"
-			"'date': '2009-04-17',"
-			"'timeZone': 'UTC'"
+		{ "\"start\": {"
+			"\"date\": \"2009-04-17\","
+			"\"timeZone\": \"UTC\""
 		"},"
-		"'end': {"
-			"'date': '2009-04-18',"
-			"'timeZone': 'UTC'"
+		"\"end\": {"
+			"\"date\": \"2009-04-18\","
+			"\"timeZone\": \"UTC\""
 		"}", TRUE, 1239926400, 1239926400 + 86400, NULL },
 		/* Full date and time. */
-		{ "'start': {"
-			"'dateTime': '2009-04-17T15:00:00Z',"
-			"'timeZone': 'UTC'"
+		{ "\"start\": {"
+			"\"dateTime\": \"2009-04-17T15:00:00Z\","
+			"\"timeZone\": \"UTC\""
 		"},"
-		"'end': {"
-			"'dateTime': '2009-04-17T16:00:00Z',"
-			"'timeZone': 'UTC'"
+		"\"end\": {"
+			"\"dateTime\": \"2009-04-17T16:00:00Z\","
+			"\"timeZone\": \"UTC\""
 		"}", FALSE, 1239926400 + 54000, 1239926400 + 54000 + 3600, NULL },
 		/* Start and end time. */
-		{ "'start': {"
-			"'date': '2009-04-27',"
-			"'timeZone': 'UTC'"
+		{ "\"start\": {"
+			"\"date\": \"2009-04-27\","
+			"\"timeZone\": \"UTC\""
 		"},"
-		"'end': {"
-			"'date': '20090506',"
-			"'timeZone': 'UTC'"
-		"}", TRUE, 1239926400 + 864000, 1241568000, "'start': {"
-			"'date': '2009-04-27',"
-			"'timeZone': 'UTC'"
+		"\"end\": {"
+			"\"date\": \"20090506\","
+			"\"timeZone\": \"UTC\""
+		"}", TRUE, 1239926400 + 864000, 1241568000, "\"start\": {"
+			"\"date\": \"2009-04-27\","
+			"\"timeZone\": \"UTC\""
 		"},"
-		"'end': {"
-			"'date': '2009-05-06',"
-			"'timeZone': 'UTC'"
+		"\"end\": {"
+			"\"date\": \"2009-05-06\","
+			"\"timeZone\": \"UTC\""
 		"}" },
 	};
 
@@ -798,20 +798,20 @@ test_event_json_dates (void)
 		GError *error = NULL;
 
 		json = g_strdup_printf ("{"
-			"'summary': 'Tennis with Beth',"
-			"'description': 'Meet for a quick lesson.',"
-			"'kind': 'calendar#event',"
+			"\"summary\": \"Tennis with Beth\","
+			"\"description\": \"Meet for a quick lesson.\","
+			"\"kind\": \"calendar#event\","
 			"%s"
 		"}", test_vectors[i].json);
 		output_json = g_strdup_printf ("{"
-			"'summary': 'Tennis with Beth',"
-			"'description': 'Meet for a quick lesson.',"
-			"'kind': 'calendar#event',"
-			"'guestsCanModify': false,"
-			"'guestsCanInviteOthers': false,"
-			"'guestsCanSeeOtherGuests': false,"
-			"'anyoneCanAddSelf': false,"
-			"'attendees': [],"
+			"\"summary\": \"Tennis with Beth\","
+			"\"description\": \"Meet for a quick lesson.\","
+			"\"kind\": \"calendar#event\","
+			"\"guestsCanModify\": false,"
+			"\"guestsCanInviteOthers\": false,"
+			"\"guestsCanSeeOtherGuests\": false,"
+			"\"anyoneCanAddSelf\": false,"
+			"\"attendees\": [],"
 			"%s"
 		"}", (test_vectors[i].output_json != NULL) ? test_vectors[i].output_json : test_vectors[i].json);
 
@@ -852,20 +852,20 @@ test_event_json_organizer (void)
 	GError *error = NULL;
 
 	event = GDATA_CALENDAR_EVENT (gdata_parsable_new_from_json (GDATA_TYPE_CALENDAR_EVENT, "{"
-		"'kind': 'calendar#event',"
-		"'id': 'some-id',"
-		"'created': '2013-12-22T18:00:00.000Z',"
-		"'summary': 'FOSDEM GNOME Beer Event',"
-		"'organizer': {"
-			"'id': 'another-id',"
-			"'displayName': 'Guillaume Desmottes'"
+		"\"kind\": \"calendar#event\","
+		"\"id\": \"some-id\","
+		"\"created\": \"2013-12-22T18:00:00.000Z\","
+		"\"summary\": \"FOSDEM GNOME Beer Event\","
+		"\"organizer\": {"
+			"\"id\": \"another-id\","
+			"\"displayName\": \"Guillaume Desmottes\""
 		"},"
-		"'attendees': ["
+		"\"attendees\": ["
 			"{"
-				"'id': 'another-id',"
-				"'displayName': 'Guillaume Desmottes',"
-				"'organizer': true,"
-				"'responseStatus': 'accepted'"
+				"\"id\": \"another-id\","
+				"\"displayName\": \"Guillaume Desmottes\","
+				"\"organizer\": true,"
+				"\"responseStatus\": \"accepted\""
 			"}"
 		"]"
 	"}", -1, &error));
@@ -884,56 +884,56 @@ test_event_json_recurrence (void)
 	gchar *id, *uri;
 
 	event = GDATA_CALENDAR_EVENT (gdata_parsable_new_from_json (GDATA_TYPE_CALENDAR_EVENT, "{"
-		"'id': 'https://www.googleapis.com/calendar/v3/calendars/libgdata.test@googlemail.com/events/g5928e82rrch95b25f8ud0dlsg_20090429T153000Z',"
-		"'updated': '2009-04-27T17:54:10.000Z',"
-		"'summary': 'Test daily instance event',"
-		"'kind': 'calendar#event',"
-		"'creator': {"
-			"'displayName': 'GData Test',"
-			"'email': 'libgdata.test@googlemail.com'"
+		"\"id\": \"https://www.googleapis.com/calendar/v3/calendars/libgdata.test@googlemail.com/events/g5928e82rrch95b25f8ud0dlsg_20090429T153000Z\","
+		"\"updated\": \"2009-04-27T17:54:10.000Z\","
+		"\"summary\": \"Test daily instance event\","
+		"\"kind\": \"calendar#event\","
+		"\"creator\": {"
+			"\"displayName\": \"GData Test\","
+			"\"email\": \"libgdata.test@googlemail.com\""
 		"},"
-		"'recurringEventId': 'g5928e82rrch95b25f8ud0dlsg',"
-		"'originalStartTime': {"
-			"'dateTime': '2009-04-29T16:30:00.000+01:00',"
-			"'timeZone': 'UTC'"
+		"\"recurringEventId\": \"g5928e82rrch95b25f8ud0dlsg\","
+		"\"originalStartTime\": {"
+			"\"dateTime\": \"2009-04-29T16:30:00.000+01:00\","
+			"\"timeZone\": \"UTC\""
 		"},"
-		"'guestsCanModify': false,"
-		"'guestsCanInviteOthers': false,"
-		"'guestsCanSeeOtherGuests': false,"
-		"'anyoneCanAddSelf': false,"
-		"'status': 'confirmed',"
-		"'visibility': 'private',"
-		"'transparency': 'opaque',"
-		"'iCalUID': 'g5928e82rrch95b25f8ud0dlsg@google.com',"
-		"'sequence': '0',"
-		"'start': {"
-			"'dateTime': '2009-04-29T17:30:00.000+01:00',"
-			"'timeZone': 'UTC'"
+		"\"guestsCanModify\": false,"
+		"\"guestsCanInviteOthers\": false,"
+		"\"guestsCanSeeOtherGuests\": false,"
+		"\"anyoneCanAddSelf\": false,"
+		"\"status\": \"confirmed\","
+		"\"visibility\": \"private\","
+		"\"transparency\": \"opaque\","
+		"\"iCalUID\": \"g5928e82rrch95b25f8ud0dlsg@google.com\","
+		"\"sequence\": \"0\","
+		"\"start\": {"
+			"\"dateTime\": \"2009-04-29T17:30:00.000+01:00\","
+			"\"timeZone\": \"UTC\""
 		"},"
-		"'end': {"
-			"'dateTime': '2009-04-29T17:30:00.000+01:00',"
-			"'timeZone': 'UTC'"
+		"\"end\": {"
+			"\"dateTime\": \"2009-04-29T17:30:00.000+01:00\","
+			"\"timeZone\": \"UTC\""
 		"},"
-		"'reminders': {"
-			"'overrides': [{"
-				"'method': 'email',"
-				"'minutes': 10"
+		"\"reminders\": {"
+			"\"overrides\": [{"
+				"\"method\": \"email\","
+				"\"minutes\": 10"
 			"}, {"
-				"'method': 'popup',"
-				"'minutes': 10"
+				"\"method\": \"popup\","
+				"\"minutes\": 10"
 			"}]"
 		"},"
-		"'attendees': ["
+		"\"attendees\": ["
 			"{"
-				"'email': 'libgdata.test@googlemail.com',"
-				"'displayName': 'GData Test',"
-				"'organizer': true,"
-				"'responseStatus': 'needsAction'"
+				"\"email\": \"libgdata.test@googlemail.com\","
+				"\"displayName\": \"GData Test\","
+				"\"organizer\": true,"
+				"\"responseStatus\": \"needsAction\""
 			"}"
 		"],"
-		"'organizer': {"
-			"'email': 'libgdata.test@googlemail.com',"
-			"'displayName': 'GData Test'"
+		"\"organizer\": {"
+			"\"email\": \"libgdata.test@googlemail.com\","
+			"\"displayName\": \"GData Test\""
 		"}"
 	"}", -1, &error));
 	g_assert_no_error (error);
@@ -962,11 +962,11 @@ test_calendar_escaping (void)
 
 	/* Check the outputted JSON is escaped properly */
 	gdata_test_assert_json (calendar, "{"
-		"'kind': 'calendar#calendar',"
-		"'timeZone': '<timezone>',"
-		"'hidden': false,"
-		"'backgroundColor': '#000000',"
-		"'selected': false"
+		"\"kind\": \"calendar#calendar\","
+		"\"timeZone\": \"<timezone>\","
+		"\"hidden\": false,"
+		"\"backgroundColor\": \"#000000\","
+		"\"selected\": false"
 	"}");
 	g_object_unref (calendar);
 }
@@ -985,17 +985,17 @@ test_event_escaping (void)
 
 	/* Check the outputted JSON is escaped properly */
 	gdata_test_assert_json (event, "{"
-		"'kind': 'calendar#event',"
-		"'status': '\"status\"',"
-		"'transparency': '\"transparency\"',"
-		"'visibility': '\"visibility\"',"
-		"'iCalUID': '\"uid\"',"
-		"'recurrence': [ '\"recurrence\"' ],"
-		"'guestsCanModify': false,"
-		"'guestsCanInviteOthers': false,"
-		"'guestsCanSeeOtherGuests': false,"
-		"'anyoneCanAddSelf': false,"
-		"'attendees': []"
+		"\"kind\": \"calendar#event\","
+		"\"status\": \"\\\"status\\\"\","
+		"\"transparency\": \"\\\"transparency\\\"\","
+		"\"visibility\": \"\\\"visibility\\\"\","
+		"\"iCalUID\": \"\\\"uid\\\"\","
+		"\"recurrence\": [ \"\\\"recurrence\\\"\" ],"
+		"\"guestsCanModify\": false,"
+		"\"guestsCanInviteOthers\": false,"
+		"\"guestsCanSeeOtherGuests\": false,"
+		"\"anyoneCanAddSelf\": false,"
+		"\"attendees\": []"
 	"}");
 	g_object_unref (event);
 }
@@ -1092,11 +1092,11 @@ test_access_rule_json (void)
 
 	/* Check the JSON */
 	gdata_test_assert_json (rule, "{"
-		"'kind': 'calendar#aclRule',"
-		"'role': 'writer',"
-		"'scope': {"
-			"'type': 'user',"
-			"'value': 'darcy@gmail.com'"
+		"\"kind\": \"calendar#aclRule\","
+		"\"role\": \"writer\","
+		"\"scope\": {"
+			"\"type\": \"user\","
+			"\"value\": \"darcy@gmail.com\""
 		"}"
 	"}");
 }
diff --git a/gdata/tests/general.c b/gdata/tests/general.c
index 57f3e8e7..d195eff9 100644
--- a/gdata/tests/general.c
+++ b/gdata/tests/general.c
@@ -2368,27 +2368,27 @@ test_app_categories (void)
 
 	categories = GDATA_APP_CATEGORIES (gdata_parsable_new_from_json (GDATA_TYPE_APP_CATEGORIES,
 		"{"
-			"'kind': 'youtube#videoCategoryListResponse',"
-			"'etag': '\"tbWC5XrSXxe1WOAx6MK9z4hHSU8/1v2mrzYSYG6onNLt2qTj13hkQZk\"',"
-			"'items': ["
+			"\"kind\": \"youtube#videoCategoryListResponse\","
+			"\"etag\": \"\\\"tbWC5XrSXxe1WOAx6MK9z4hHSU8/1v2mrzYSYG6onNLt2qTj13hkQZk\\\"\","
+			"\"items\": ["
 				"{"
-					"'kind': 'youtube#videoCategory',"
-					"'etag': '\"tbWC5XrSXxe1WOAx6MK9z4hHSU8/Xy1mB4_yLrHy_BmKmPBggty2mZQ\"',"
-					"'id': '1',"
-					"'snippet': {"
-						"'channelId': 'UCBR8-60-B28hp2BmDPdntcQ',"
-						"'title': 'Film & Animation',"
-						"'assignable': true"
+					"\"kind\": \"youtube#videoCategory\","
+					"\"etag\": \"\\\"tbWC5XrSXxe1WOAx6MK9z4hHSU8/Xy1mB4_yLrHy_BmKmPBggty2mZQ\\\"\","
+					"\"id\": \"1\","
+					"\"snippet\": {"
+						"\"channelId\": \"UCBR8-60-B28hp2BmDPdntcQ\","
+						"\"title\": \"Film & Animation\","
+						"\"assignable\": true"
 					"}"
 				"},"
 				"{"
-					"'kind': 'youtube#videoCategory',"
-					"'etag': '\"tbWC5XrSXxe1WOAx6MK9z4hHSU8/UZ1oLIIz2dxIhO45ZTFR3a3NyTA\"',"
-					"'id': '2',"
-					"'snippet': {"
-						"'channelId': 'UCBR8-60-B28hp2BmDPdntcQ',"
-						"'title': 'Autos & Vehicles',"
-						"'assignable': true"
+					"\"kind\": \"youtube#videoCategory\","
+					"\"etag\": \"\\\"tbWC5XrSXxe1WOAx6MK9z4hHSU8/UZ1oLIIz2dxIhO45ZTFR3a3NyTA\\\"\","
+					"\"id\": \"2\","
+					"\"snippet\": {"
+						"\"channelId\": \"UCBR8-60-B28hp2BmDPdntcQ\","
+						"\"title\": \"Autos & Vehicles\","
+						"\"assignable\": true"
 					"}"
 				"}"
 			"]"
@@ -2424,8 +2424,8 @@ test_app_categories (void)
 	/* Now parse one with less information available */
 	categories = GDATA_APP_CATEGORIES (gdata_parsable_new_from_json (GDATA_TYPE_APP_CATEGORIES,
 		"{"
-			"'kind': 'youtube#videoCategoryListResponse',"
-			"'items': []"
+			"\"kind\": \"youtube#videoCategoryListResponse\","
+			"\"items\": []"
 		"}", -1, &error));
 	g_assert_no_error (error);
 	g_assert (GDATA_IS_APP_CATEGORIES (categories));
diff --git a/gdata/tests/streams.c b/gdata/tests/streams.c
index 6ba5f960..c66d7a6c 100644
--- a/gdata/tests/streams.c
+++ b/gdata/tests/streams.c
@@ -752,15 +752,15 @@ test_upload_stream_resumable_server_handler_cb (SoupServer *server, SoupMessage
 				g_assert (message->request_body->data[message->request_body->length] == '\0');
 				g_assert (gdata_test_compare_json_strings (message->request_body->data,
 					"{"
-						"'title': 'Test title!',"
-						"'kind': 'youtube#video',"
-						"'snippet': {"
-							"'title': 'Test title!'"
+						"\"title\": \"Test title!\","
+						"\"kind\": \"youtube#video\","
+						"\"snippet\": {"
+							"\"title\": \"Test title!\""
 						"},"
-						"'status': {"
-							"'privacyStatus': 'public'"
+						"\"status\": {"
+							"\"privacyStatus\": \"public\""
 						"},"
-						"'recordingDetails': {}"
+						"\"recordingDetails\": {}"
 					"}", TRUE) == TRUE);
 
 				break;
@@ -861,17 +861,17 @@ test_upload_stream_resumable_server_handler_cb (SoupServer *server, SoupMessage
 error: {
 		const gchar *error_response =
 			"{"
-				"'error': {"
-					"'errors': ["
+				"\"error\": {"
+					"\"errors\": ["
 						"{"
-							"'domain': 'global',"
-							"'reason': 'authError',"
-							"'message': 'Invalid token.',"
-							"'location': 'Authorization: GoogleLogin'"
+							"\"domain\": \"global\","
+							"\"reason\": \"authError\","
+							"\"message\": \"Invalid token.\","
+							"\"location\": \"Authorization: GoogleLogin\""
 						"}"
 					"],"
-					"'code': 400,"
-					"'message': 'Invalid token.'"
+					"\"code\": 400,"
+					"\"message\": \"Invalid token.\""
 				"}"
 			"}";
 
@@ -906,16 +906,16 @@ continuation: {
 completion: {
 		const gchar *completion_response =
 			"{"
-				"'kind': 'youtube#video',"
-				"'snippet': {"
-					"'title': 'Test title!',"
-					"'categoryId': '10'"  /* Music */
+				"\"kind\": \"youtube#video\","
+				"\"snippet\": {"
+					"\"title\": \"Test title!\","
+					"\"categoryId\": \"10\""  /* Music */
 				"},"
-				"'status': {"
-					"'privacyStatus': 'public'"
+				"\"status\": {"
+					"\"privacyStatus\": \"public\""
 				"},"
-				"'recordingDetails': {"
-					"'recordingDate': '2005-10-02'"
+				"\"recordingDetails\": {"
+					"\"recordingDate\": \"2005-10-02\""
 				"}"
 			"}";
 
diff --git a/gdata/tests/youtube.c b/gdata/tests/youtube.c
index e4780848..fe30ec96 100644
--- a/gdata/tests/youtube.c
+++ b/gdata/tests/youtube.c
@@ -104,8 +104,8 @@ get_video_for_related (void)
 
 	video = GDATA_YOUTUBE_VIDEO (gdata_parsable_new_from_json (GDATA_TYPE_YOUTUBE_VIDEO,
 		"{"
-			"'kind': 'youtube#video',"
-			"'id': 'q1UPMEmCqZo'"
+			"\"kind\": \"youtube#video\","
+			"\"id\": \"q1UPMEmCqZo\""
 		"}", -1, &error));
 	g_assert_no_error (error);
 	g_assert (GDATA_IS_YOUTUBE_VIDEO (video));
@@ -393,312 +393,312 @@ test_parsing_app_control (void)
 
 	video = GDATA_YOUTUBE_VIDEO (gdata_parsable_new_from_json (GDATA_TYPE_YOUTUBE_VIDEO,
 		"{"
-			"'kind': 'youtube#video',"
-			"'etag': '\"tbWC5XrSXxe1WOAx6MK9z4hHSU8/X_byq2BdOVgHzCA-ScpZbTWmgfQ\"',"
-			"'id': 'JAagedeKdcQ',"
-			"'snippet': {"
-				"'publishedAt': '2006-05-16T14:06:37.000Z',"
-				"'channelId': 'UCCS6UQvicRHyn1whEUDEMUQ',"
-				"'title': 'Judas Priest - Painkiller',"
-				"'description': 'Videoclip de Judas Priest',"
-				"'thumbnails': {"
-					"'default': {"
-						"'url': 'https://i.ytimg.com/vi/JAagedeKdcQ/default.jpg',"
-						"'width': 120,"
-						"'height': 90"
+			"\"kind\": \"youtube#video\","
+			"\"etag\": \"\\\"tbWC5XrSXxe1WOAx6MK9z4hHSU8/X_byq2BdOVgHzCA-ScpZbTWmgfQ\\\"\","
+			"\"id\": \"JAagedeKdcQ\","
+			"\"snippet\": {"
+				"\"publishedAt\": \"2006-05-16T14:06:37.000Z\","
+				"\"channelId\": \"UCCS6UQvicRHyn1whEUDEMUQ\","
+				"\"title\": \"Judas Priest - Painkiller\","
+				"\"description\": \"Videoclip de Judas Priest\","
+				"\"thumbnails\": {"
+					"\"default\": {"
+						"\"url\": \"https://i.ytimg.com/vi/JAagedeKdcQ/default.jpg\","
+						"\"width\": 120,"
+						"\"height\": 90"
 					"},"
-					"'medium': {"
-						"'url': 'https://i.ytimg.com/vi/JAagedeKdcQ/mqdefault.jpg',"
-						"'width': 320,"
-						"'height': 180"
+					"\"medium\": {"
+						"\"url\": \"https://i.ytimg.com/vi/JAagedeKdcQ/mqdefault.jpg\","
+						"\"width\": 320,"
+						"\"height\": 180"
 					"},"
-					"'high': {"
-						"'url': 'https://i.ytimg.com/vi/JAagedeKdcQ/hqdefault.jpg',"
-						"'width': 480,"
-						"'height': 360"
+					"\"high\": {"
+						"\"url\": \"https://i.ytimg.com/vi/JAagedeKdcQ/hqdefault.jpg\","
+						"\"width\": 480,"
+						"\"height\": 360"
 					"}"
 				"},"
-				"'channelTitle': 'eluves',"
-				"'categoryId': '10',"
-				"'liveBroadcastContent': 'none',"
-				"'localized': {"
-					"'title': 'Judas Priest - Painkiller',"
-					"'description': 'Videoclip de Judas Priest'"
+				"\"channelTitle\": \"eluves\","
+				"\"categoryId\": \"10\","
+				"\"liveBroadcastContent\": \"none\","
+				"\"localized\": {"
+					"\"title\": \"Judas Priest - Painkiller\","
+					"\"description\": \"Videoclip de Judas Priest\""
 				"}"
 			"},"
-			"'contentDetails': {"
-				"'duration': 'PT6M',"
-				"'dimension': '2d',"
-				"'definition': 'sd',"
-				"'caption': 'false',"
-				"'licensedContent': false,"
-				"'regionRestriction': {"
-					"'blocked': ["
-						"'RU',"
-						"'RW',"
-						"'RS',"
-						"'RO',"
-						"'RE',"
-						"'BL',"
-						"'BM',"
-						"'BN',"
-						"'BO',"
-						"'JP',"
-						"'BI',"
-						"'BJ',"
-						"'BD',"
-						"'BE',"
-						"'BF',"
-						"'BG',"
-						"'YT',"
-						"'BB',"
-						"'CX',"
-						"'JE',"
-						"'BY',"
-						"'BZ',"
-						"'BT',"
-						"'JM',"
-						"'BV',"
-						"'BW',"
-						"'YE',"
-						"'BQ',"
-						"'BR',"
-						"'BS',"
-						"'IM',"
-						"'IL',"
-						"'IO',"
-						"'IN',"
-						"'IE',"
-						"'ID',"
-						"'QA',"
-						"'TM',"
-						"'IQ',"
-						"'IS',"
-						"'IR',"
-						"'IT',"
-						"'TK',"
-						"'AE',"
-						"'AD',"
-						"'AG',"
-						"'AF',"
-						"'AI',"
-						"'AM',"
-						"'AL',"
-						"'AO',"
-						"'AQ',"
-						"'AS',"
-						"'AR',"
-						"'AU',"
-						"'AT',"
-						"'AW',"
-						"'TG',"
-						"'AX',"
-						"'AZ',"
-						"'PR',"
-						"'HK',"
-						"'HN',"
-						"'PW',"
-						"'PT',"
-						"'HM',"
-						"'PY',"
-						"'PA',"
-						"'PF',"
-						"'PG',"
-						"'PE',"
-						"'HR',"
-						"'PK',"
-						"'PH',"
-						"'PN',"
-						"'HT',"
-						"'HU',"
-						"'OM',"
-						"'WS',"
-						"'WF',"
-						"'BH',"
-						"'KP',"
-						"'TT',"
-						"'GG',"
-						"'GF',"
-						"'GE',"
-						"'GD',"
-						"'GB',"
-						"'VN',"
-						"'VA',"
-						"'GM',"
-						"'VC',"
-						"'VE',"
-						"'GI',"
-						"'VG',"
-						"'GW',"
-						"'GU',"
-						"'GT',"
-						"'GS',"
-						"'GR',"
-						"'GQ',"
-						"'GP',"
-						"'VU',"
-						"'GY',"
-						"'NA',"
-						"'NC',"
-						"'NE',"
-						"'NF',"
-						"'NG',"
-						"'NI',"
-						"'NL',"
-						"'BA',"
-						"'NO',"
-						"'NP',"
-						"'NR',"
-						"'NU',"
-						"'NZ',"
-						"'PM',"
-						"'UM',"
-						"'TV',"
-						"'UG',"
-						"'UA',"
-						"'FI',"
-						"'FJ',"
-						"'FK',"
-						"'UY',"
-						"'FM',"
-						"'CN',"
-						"'UZ',"
-						"'US',"
-						"'ME',"
-						"'MD',"
-						"'MG',"
-						"'MF',"
-						"'MA',"
-						"'MC',"
-						"'VI',"
-						"'MM',"
-						"'ML',"
-						"'MO',"
-						"'FO',"
-						"'MH',"
-						"'MK',"
-						"'MU',"
-						"'MT',"
-						"'MW',"
-						"'MV',"
-						"'MQ',"
-						"'MP',"
-						"'MS',"
-						"'MR',"
-						"'CO',"
-						"'CV',"
-						"'MY',"
-						"'MX',"
-						"'MZ',"
-						"'TN',"
-						"'TO',"
-						"'TL',"
-						"'JO',"
-						"'TJ',"
-						"'GA',"
-						"'TH',"
-						"'TF',"
-						"'ET',"
-						"'TD',"
-						"'TC',"
-						"'ES',"
-						"'ER',"
-						"'TZ',"
-						"'EH',"
-						"'GN',"
-						"'EE',"
-						"'TW',"
-						"'EG',"
-						"'TR',"
-						"'CA',"
-						"'EC',"
-						"'GL',"
-						"'LB',"
-						"'LC',"
-						"'LA',"
-						"'MN',"
-						"'LK',"
-						"'LI',"
-						"'LV',"
-						"'LT',"
-						"'LU',"
-						"'LR',"
-						"'LS',"
-						"'PS',"
-						"'KZ',"
-						"'GH',"
-						"'LY',"
-						"'DZ',"
-						"'DO',"
-						"'DM',"
-						"'DJ',"
-						"'PL',"
-						"'DK',"
-						"'DE',"
-						"'SZ',"
-						"'SY',"
-						"'SX',"
-						"'SS',"
-						"'SR',"
-						"'SV',"
-						"'ST',"
-						"'SK',"
-						"'SJ',"
-						"'SI',"
-						"'SH',"
-						"'SO',"
-						"'SN',"
-						"'SM',"
-						"'SL',"
-						"'SC',"
-						"'SB',"
-						"'SA',"
-						"'FR',"
-						"'SG',"
-						"'SE',"
-						"'SD',"
-						"'CK',"
-						"'KR',"
-						"'CI',"
-						"'CH',"
-						"'KW',"
-						"'ZA',"
-						"'CM',"
-						"'CL',"
-						"'CC',"
-						"'ZM',"
-						"'KY',"
-						"'CG',"
-						"'CF',"
-						"'CD',"
-						"'CZ',"
-						"'CY',"
-						"'ZW',"
-						"'KG',"
-						"'CU',"
-						"'KE',"
-						"'CR',"
-						"'KI',"
-						"'KH',"
-						"'CW',"
-						"'KN',"
-						"'KM'"
+			"\"contentDetails\": {"
+				"\"duration\": \"PT6M\","
+				"\"dimension\": \"2d\","
+				"\"definition\": \"sd\","
+				"\"caption\": \"false\","
+				"\"licensedContent\": false,"
+				"\"regionRestriction\": {"
+					"\"blocked\": ["
+						"\"RU\","
+						"\"RW\","
+						"\"RS\","
+						"\"RO\","
+						"\"RE\","
+						"\"BL\","
+						"\"BM\","
+						"\"BN\","
+						"\"BO\","
+						"\"JP\","
+						"\"BI\","
+						"\"BJ\","
+						"\"BD\","
+						"\"BE\","
+						"\"BF\","
+						"\"BG\","
+						"\"YT\","
+						"\"BB\","
+						"\"CX\","
+						"\"JE\","
+						"\"BY\","
+						"\"BZ\","
+						"\"BT\","
+						"\"JM\","
+						"\"BV\","
+						"\"BW\","
+						"\"YE\","
+						"\"BQ\","
+						"\"BR\","
+						"\"BS\","
+						"\"IM\","
+						"\"IL\","
+						"\"IO\","
+						"\"IN\","
+						"\"IE\","
+						"\"ID\","
+						"\"QA\","
+						"\"TM\","
+						"\"IQ\","
+						"\"IS\","
+						"\"IR\","
+						"\"IT\","
+						"\"TK\","
+						"\"AE\","
+						"\"AD\","
+						"\"AG\","
+						"\"AF\","
+						"\"AI\","
+						"\"AM\","
+						"\"AL\","
+						"\"AO\","
+						"\"AQ\","
+						"\"AS\","
+						"\"AR\","
+						"\"AU\","
+						"\"AT\","
+						"\"AW\","
+						"\"TG\","
+						"\"AX\","
+						"\"AZ\","
+						"\"PR\","
+						"\"HK\","
+						"\"HN\","
+						"\"PW\","
+						"\"PT\","
+						"\"HM\","
+						"\"PY\","
+						"\"PA\","
+						"\"PF\","
+						"\"PG\","
+						"\"PE\","
+						"\"HR\","
+						"\"PK\","
+						"\"PH\","
+						"\"PN\","
+						"\"HT\","
+						"\"HU\","
+						"\"OM\","
+						"\"WS\","
+						"\"WF\","
+						"\"BH\","
+						"\"KP\","
+						"\"TT\","
+						"\"GG\","
+						"\"GF\","
+						"\"GE\","
+						"\"GD\","
+						"\"GB\","
+						"\"VN\","
+						"\"VA\","
+						"\"GM\","
+						"\"VC\","
+						"\"VE\","
+						"\"GI\","
+						"\"VG\","
+						"\"GW\","
+						"\"GU\","
+						"\"GT\","
+						"\"GS\","
+						"\"GR\","
+						"\"GQ\","
+						"\"GP\","
+						"\"VU\","
+						"\"GY\","
+						"\"NA\","
+						"\"NC\","
+						"\"NE\","
+						"\"NF\","
+						"\"NG\","
+						"\"NI\","
+						"\"NL\","
+						"\"BA\","
+						"\"NO\","
+						"\"NP\","
+						"\"NR\","
+						"\"NU\","
+						"\"NZ\","
+						"\"PM\","
+						"\"UM\","
+						"\"TV\","
+						"\"UG\","
+						"\"UA\","
+						"\"FI\","
+						"\"FJ\","
+						"\"FK\","
+						"\"UY\","
+						"\"FM\","
+						"\"CN\","
+						"\"UZ\","
+						"\"US\","
+						"\"ME\","
+						"\"MD\","
+						"\"MG\","
+						"\"MF\","
+						"\"MA\","
+						"\"MC\","
+						"\"VI\","
+						"\"MM\","
+						"\"ML\","
+						"\"MO\","
+						"\"FO\","
+						"\"MH\","
+						"\"MK\","
+						"\"MU\","
+						"\"MT\","
+						"\"MW\","
+						"\"MV\","
+						"\"MQ\","
+						"\"MP\","
+						"\"MS\","
+						"\"MR\","
+						"\"CO\","
+						"\"CV\","
+						"\"MY\","
+						"\"MX\","
+						"\"MZ\","
+						"\"TN\","
+						"\"TO\","
+						"\"TL\","
+						"\"JO\","
+						"\"TJ\","
+						"\"GA\","
+						"\"TH\","
+						"\"TF\","
+						"\"ET\","
+						"\"TD\","
+						"\"TC\","
+						"\"ES\","
+						"\"ER\","
+						"\"TZ\","
+						"\"EH\","
+						"\"GN\","
+						"\"EE\","
+						"\"TW\","
+						"\"EG\","
+						"\"TR\","
+						"\"CA\","
+						"\"EC\","
+						"\"GL\","
+						"\"LB\","
+						"\"LC\","
+						"\"LA\","
+						"\"MN\","
+						"\"LK\","
+						"\"LI\","
+						"\"LV\","
+						"\"LT\","
+						"\"LU\","
+						"\"LR\","
+						"\"LS\","
+						"\"PS\","
+						"\"KZ\","
+						"\"GH\","
+						"\"LY\","
+						"\"DZ\","
+						"\"DO\","
+						"\"DM\","
+						"\"DJ\","
+						"\"PL\","
+						"\"DK\","
+						"\"DE\","
+						"\"SZ\","
+						"\"SY\","
+						"\"SX\","
+						"\"SS\","
+						"\"SR\","
+						"\"SV\","
+						"\"ST\","
+						"\"SK\","
+						"\"SJ\","
+						"\"SI\","
+						"\"SH\","
+						"\"SO\","
+						"\"SN\","
+						"\"SM\","
+						"\"SL\","
+						"\"SC\","
+						"\"SB\","
+						"\"SA\","
+						"\"FR\","
+						"\"SG\","
+						"\"SE\","
+						"\"SD\","
+						"\"CK\","
+						"\"KR\","
+						"\"CI\","
+						"\"CH\","
+						"\"KW\","
+						"\"ZA\","
+						"\"CM\","
+						"\"CL\","
+						"\"CC\","
+						"\"ZM\","
+						"\"KY\","
+						"\"CG\","
+						"\"CF\","
+						"\"CD\","
+						"\"CZ\","
+						"\"CY\","
+						"\"ZW\","
+						"\"KG\","
+						"\"CU\","
+						"\"KE\","
+						"\"CR\","
+						"\"KI\","
+						"\"KH\","
+						"\"CW\","
+						"\"KN\","
+						"\"KM\""
 					"]"
 				"}"
 			"},"
-			"'status': {"
-				"'uploadStatus': 'processed',"
-				"'privacyStatus': 'private',"
-				"'license': 'youtube',"
-				"'embeddable': true,"
-				"'publicStatsViewable': true"
+			"\"status\": {"
+				"\"uploadStatus\": \"processed\","
+				"\"privacyStatus\": \"private\","
+				"\"license\": \"youtube\","
+				"\"embeddable\": true,"
+				"\"publicStatsViewable\": true"
 			"},"
-			"'statistics': {"
-				"'viewCount': '4369107',"
-				"'likeCount': '13619',"
-				"'dislikeCount': '440',"
-				"'favoriteCount': '0',"
-				"'commentCount': '11181'"
+			"\"statistics\": {"
+				"\"viewCount\": \"4369107\","
+				"\"likeCount\": \"13619\","
+				"\"dislikeCount\": \"440\","
+				"\"favoriteCount\": \"0\","
+				"\"commentCount\": \"11181\""
 			"}"
 		"}", -1, &error));
 	g_assert_no_error (error);
@@ -726,24 +726,24 @@ test_parsing_yt_recorded (void)
 
 	video = GDATA_YOUTUBE_VIDEO (gdata_parsable_new_from_json (GDATA_TYPE_YOUTUBE_VIDEO,
 		"{"
-			"'kind': 'youtube#video',"
-			"'etag': '\"tbWC5XrSXxe1WOAx6MK9z4hHSU8/X_byq2BdOVgHzCA-ScpZbTWmgfQ\"',"
-			"'id': 'JAagedeKdcQ',"
-			"'snippet': {"
-				"'publishedAt': '2006-05-16T14:06:37.000Z',"
-				"'channelId': 'UCCS6UQvicRHyn1whEUDEMUQ',"
-				"'title': 'Judas Priest - Painkiller',"
-				"'description': 'Videoclip de Judas Priest',"
-				"'channelTitle': 'eluves',"
-				"'categoryId': '10',"
-				"'liveBroadcastContent': 'none',"
-				"'localized': {"
-					"'title': 'Judas Priest - Painkiller',"
-					"'description': 'Videoclip de Judas Priest'"
+			"\"kind\": \"youtube#video\","
+			"\"etag\": \"\\\"tbWC5XrSXxe1WOAx6MK9z4hHSU8/X_byq2BdOVgHzCA-ScpZbTWmgfQ\\\"\","
+			"\"id\": \"JAagedeKdcQ\","
+			"\"snippet\": {"
+				"\"publishedAt\": \"2006-05-16T14:06:37.000Z\","
+				"\"channelId\": \"UCCS6UQvicRHyn1whEUDEMUQ\","
+				"\"title\": \"Judas Priest - Painkiller\","
+				"\"description\": \"Videoclip de Judas Priest\","
+				"\"channelTitle\": \"eluves\","
+				"\"categoryId\": \"10\","
+				"\"liveBroadcastContent\": \"none\","
+				"\"localized\": {"
+					"\"title\": \"Judas Priest - Painkiller\","
+					"\"description\": \"Videoclip de Judas Priest\""
 				"}"
 			"},"
-			"'recordingDetails': {"
-				"'recordingDate': '2003-08-03'"
+			"\"recordingDetails\": {"
+				"\"recordingDate\": \"2003-08-03\""
 			"}"
 		"}", -1, &error));
 	g_assert_no_error (error);
@@ -761,22 +761,22 @@ test_parsing_yt_recorded (void)
 	/* Check the XML */
 	gdata_test_assert_json (video,
 		"{"
-			"'kind': 'youtube#video',"
-			"'etag': '\"tbWC5XrSXxe1WOAx6MK9z4hHSU8/X_byq2BdOVgHzCA-ScpZbTWmgfQ\"',"
-			"'id': 'JAagedeKdcQ',"
-			"'selfLink': 'https://www.googleapis.com/youtube/v3/videos?id=JAagedeKdcQ',"
-			"'title': 'Judas Priest - Painkiller',"
-			"'description': 'Videoclip de Judas Priest',"
-			"'snippet': {"
-				"'title': 'Judas Priest - Painkiller',"
-				"'description': 'Videoclip de Judas Priest',"
-				"'categoryId': '10'"
+			"\"kind\": \"youtube#video\","
+			"\"etag\": \"\\\"tbWC5XrSXxe1WOAx6MK9z4hHSU8/X_byq2BdOVgHzCA-ScpZbTWmgfQ\\\"\","
+			"\"id\": \"JAagedeKdcQ\","
+			"\"selfLink\": \"https://www.googleapis.com/youtube/v3/videos?id=JAagedeKdcQ\","
+			"\"title\": \"Judas Priest - Painkiller\","
+			"\"description\": \"Videoclip de Judas Priest\","
+			"\"snippet\": {"
+				"\"title\": \"Judas Priest - Painkiller\","
+				"\"description\": \"Videoclip de Judas Priest\","
+				"\"categoryId\": \"10\""
 			"},"
-			"'status': {"
-				"'privacyStatus': 'public'"
+			"\"status\": {"
+				"\"privacyStatus\": \"public\""
 			"},"
-			"'recordingDetails': {"
-				"'recordingDate': '2005-10-02'"
+			"\"recordingDetails\": {"
+				"\"recordingDate\": \"2005-10-02\""
 			"}"
 		"}");
 
@@ -793,11 +793,11 @@ test_parsing_yt_access_control (void)
 
 	video = GDATA_YOUTUBE_VIDEO (gdata_parsable_new_from_json (GDATA_TYPE_YOUTUBE_VIDEO,
 		"{"
-			"'kind': 'youtube#video',"
-			"'id': 'JAagedeKdcQ',"
-			"'status': {"
-				"'privacyStatus': 'public',"
-				"'embeddable': false"
+			"\"kind\": \"youtube#video\","
+			"\"id\": \"JAagedeKdcQ\","
+			"\"status\": {"
+				"\"privacyStatus\": \"public\","
+				"\"embeddable\": false"
 			"}"
 		"}", -1, &error));
 	g_assert_no_error (error);
@@ -820,16 +820,16 @@ test_parsing_yt_access_control (void)
 	/* Check the JSON */
 	gdata_test_assert_json (video,
 		"{"
-			"'kind': 'youtube#video',"
-			"'id': 'JAagedeKdcQ',"
-			"'selfLink': 'https://www.googleapis.com/youtube/v3/videos?id=JAagedeKdcQ',"
-			"'title': null,"
-			"'snippet': {},"
-			"'status': {"
-				"'privacyStatus': 'unlisted',"
-				"'embeddable': true"
+			"\"kind\": \"youtube#video\","
+			"\"id\": \"JAagedeKdcQ\","
+			"\"selfLink\": \"https://www.googleapis.com/youtube/v3/videos?id=JAagedeKdcQ\","
+			"\"title\": null,"
+			"\"snippet\": {},"
+			"\"status\": {"
+				"\"privacyStatus\": \"unlisted\","
+				"\"embeddable\": true"
 			"},"
-			"'recordingDetails': {}"
+			"\"recordingDetails\": {}"
 		"}");
 
 	g_object_unref (video);
@@ -898,12 +898,12 @@ test_parsing_georss_where (void)
 
 	video = GDATA_YOUTUBE_VIDEO (gdata_parsable_new_from_json (GDATA_TYPE_YOUTUBE_VIDEO,
 		"{"
-			"'kind': 'youtube#video',"
-			"'id': 'JAagedeKdcQ',"
-			"'recordingDetails': {"
-				"'location': {"
-					"'latitude': 41.14556884765625,"
-					"'longitude': -8.63525390625"
+			"\"kind\": \"youtube#video\","
+			"\"id\": \"JAagedeKdcQ\","
+			"\"recordingDetails\": {"
+				"\"location\": {"
+					"\"latitude\": 41.14556884765625,"
+					"\"longitude\": -8.63525390625"
 				"}"
 			"}"
 		"}", -1, &error));
@@ -930,18 +930,18 @@ test_parsing_georss_where (void)
 	/* Check the JSON */
 	gdata_test_assert_json (video,
 		"{"
-			"'kind': 'youtube#video',"
-			"'id': 'JAagedeKdcQ',"
-			"'selfLink': 'https://www.googleapis.com/youtube/v3/videos?id=JAagedeKdcQ',"
-			"'title': null,"
-			"'snippet': {},"
-			"'status': {"
-				"'privacyStatus': 'public'"
+			"\"kind\": \"youtube#video\","
+			"\"id\": \"JAagedeKdcQ\","
+			"\"selfLink\": \"https://www.googleapis.com/youtube/v3/videos?id=JAagedeKdcQ\","
+			"\"title\": null,"
+			"\"snippet\": {},"
+			"\"status\": {"
+				"\"privacyStatus\": \"public\""
 			"},"
-			"'recordingDetails': {"
-				"'location': {"
-					"'latitude': 5.5,"
-					"'longitude': 6.5"
+			"\"recordingDetails\": {"
+				"\"location\": {"
+					"\"latitude\": 5.5,"
+					"\"longitude\": 6.5"
 				"}"
 			"}"
 		"}");
@@ -956,15 +956,15 @@ test_parsing_georss_where (void)
 	/* Check the JSON */
 	gdata_test_assert_json (video,
 		"{"
-			"'kind': 'youtube#video',"
-			"'id': 'JAagedeKdcQ',"
-			"'selfLink': 'https://www.googleapis.com/youtube/v3/videos?id=JAagedeKdcQ',"
-			"'title': null,"
-			"'snippet': {},"
-			"'status': {"
-				"'privacyStatus': 'public'"
+			"\"kind\": \"youtube#video\","
+			"\"id\": \"JAagedeKdcQ\","
+			"\"selfLink\": \"https://www.googleapis.com/youtube/v3/videos?id=JAagedeKdcQ\","
+			"\"title\": null,"
+			"\"snippet\": {},"
+			"\"status\": {"
+				"\"privacyStatus\": \"public\""
 			"},"
-			"'recordingDetails': {}"
+			"\"recordingDetails\": {}"
 		"}");
 
 	g_object_unref (video);
@@ -979,12 +979,12 @@ test_parsing_ratings (void)
 	/* Parse all ratings */
 	video = GDATA_YOUTUBE_VIDEO (gdata_parsable_new_from_json (GDATA_TYPE_YOUTUBE_VIDEO,
 		"{"
-			"'kind': 'youtube#video',"
-			"'id': 'JAagedeKdcQ',"
-			"'contentDetails': {"
-				"'contentRating': {"
-					"'mpaaRating': 'mpaaPg',"
-					"'tvpgRating': 'tvpgPg'"
+			"\"kind\": \"youtube#video\","
+			"\"id\": \"JAagedeKdcQ\","
+			"\"contentDetails\": {"
+				"\"contentRating\": {"
+					"\"mpaaRating\": \"mpaaPg\","
+					"\"tvpgRating\": \"tvpgPg\""
 				"}"
 			"}"
 		"}", -1, &error));
@@ -1003,11 +1003,11 @@ test_parsing_ratings (void)
 	/* Parse a video with one rating missing and see what happens */
 	video = GDATA_YOUTUBE_VIDEO (gdata_parsable_new_from_json (GDATA_TYPE_YOUTUBE_VIDEO,
 		"{"
-			"'kind': 'youtube#video',"
-			"'id': 'JAagedeKdcQ',"
-			"'contentDetails': {"
-				"'contentRating': {"
-					"'tvpgRating': 'tvpgY7Fv'"
+			"\"kind\": \"youtube#video\","
+			"\"id\": \"JAagedeKdcQ\","
+			"\"contentDetails\": {"
+				"\"contentRating\": {"
+					"\"tvpgRating\": \"tvpgY7Fv\""
 				"}"
 			"}"
 		"}", -1, &error));
@@ -1041,21 +1041,21 @@ test_video_escaping (void)
 	/* Check the outputted JSON is escaped properly */
 	gdata_test_assert_json (video,
 		"{"
-			"'kind': 'youtube#video',"
-			"'title': null,"
-			"'description': \"Description & 'stuff'.\","
-			"'snippet': {"
-				"'description': \"Description & 'stuff'.\","
-				"'tags': ["
-					"'<keyword1>',"
-					"'keyword2 & stuff, things'"
+			"\"kind\": \"youtube#video\","
+			"\"title\": null,"
+			"\"description\": \"Description & 'stuff'.\","
+			"\"snippet\": {"
+				"\"description\": \"Description & 'stuff'.\","
+				"\"tags\": ["
+					"\"<keyword1>\","
+					"\"keyword2 & stuff, things\""
 				"]"
 			"},"
-			"'status': {"
-				"'privacyStatus': 'public'"
+			"\"status\": {"
+				"\"privacyStatus\": \"public\""
 			"},"
-			"'recordingDetails': {"
-				"'locationDescription': \"\\\"Here\\\" & 'there'\""
+			"\"recordingDetails\": {"
+				"\"locationDescription\": \"\\\"Here\\\" & 'there'\""
 			"}"
 		"}");
 	g_object_unref (video);
@@ -1081,13 +1081,13 @@ test_video_location (void)
 	/* Check the outputted JSON is escaped properly */
 	gdata_test_assert_json (video,
 		"{"
-			"'title': null,"
-			"'kind': 'youtube#video',"
-			"'snippet': {},"
-			"'status': {"
-				"'privacyStatus': 'public'"
+			"\"title\": null,"
+			"\"kind\": \"youtube#video\","
+			"\"snippet\": {},"
+			"\"status\": {"
+				"\"privacyStatus\": \"public\""
 			"},"
-			"'recordingDetails': {}"
+			"\"recordingDetails\": {}"
 		"}");
 
 	g_object_unref (video);
@@ -1107,13 +1107,13 @@ test_comment_get_json (void)
 	/* Check the outputted JSON is OK */
 	gdata_test_assert_json (comment_,
 		"{"
-			"'kind': 'youtube#commentThread',"
-			"'snippet' : {"
-				"'topLevelComment': {"
-					"'kind': 'youtube#comment',"
-					"'snippet': {"
-						"'textOriginal': \"This is a comment with <markup> & 'stüff'.\","
-						"'parentId': 'http://example.com/?foo=bar&baz=shizzle'"
+			"\"kind\": \"youtube#commentThread\","
+			"\"snippet\" : {"
+				"\"topLevelComment\": {"
+					"\"kind\": \"youtube#comment\","
+					"\"snippet\": {"
+						"\"textOriginal\": \"This is a comment with <markup> & 'stüff'.\","
+						"\"parentId\": \"http://example.com/?foo=bar&baz=shizzle\""
 					"}"
 				"}"
 			"}"
-- 
GitLab