fix: markdown double-encoding and robust date/API access
This commit is contained in:
@@ -56,6 +56,21 @@ assertEquals(
|
||||
'formatDate affiche les années au pluriel'
|
||||
);
|
||||
|
||||
// --- formatDate : dates malformées (repli sur la chaîne brute) ---------------
|
||||
|
||||
assertEquals(
|
||||
'pas une date',
|
||||
formatDate('pas une date'),
|
||||
'formatDate retourne la chaîne brute si la date est invalide'
|
||||
);
|
||||
assertEquals(
|
||||
'2024-13-45T99:99:99Z',
|
||||
formatDate('2024-13-45T99:99:99Z'),
|
||||
'formatDate retourne une date ISO malformée telle quelle'
|
||||
);
|
||||
assertEquals('', formatDate(''), 'formatDate retourne une chaîne vide telle quelle');
|
||||
assertEquals(' ', formatDate(' '), 'formatDate retourne une chaîne blanche telle quelle');
|
||||
|
||||
// --- formatVideosData -------------------------------------------------------
|
||||
|
||||
$rawVideos = [
|
||||
@@ -125,6 +140,58 @@ assertEquals('', $videos[1]['description'], 'formatVideosData met une descriptio
|
||||
assertEquals([], $videos[1]['tags'], 'formatVideosData met des tags vides par défaut');
|
||||
assertFalse($videos[1]['isLive'], 'formatVideosData met isLive à false par défaut');
|
||||
|
||||
// --- formatVideosData : données API incomplètes -------------------------------
|
||||
|
||||
$incompleteVideos = formatVideosData([
|
||||
[
|
||||
// Sans uuid : doit être ignorée
|
||||
'name' => 'Sans uuid',
|
||||
'duration' => 10,
|
||||
],
|
||||
[
|
||||
// uuid vide : doit être ignorée aussi
|
||||
'uuid' => '',
|
||||
'name' => 'Uuid vide',
|
||||
],
|
||||
[
|
||||
// uuid seul : valeurs par défaut partout ailleurs
|
||||
'uuid' => 'ghi-789',
|
||||
],
|
||||
[
|
||||
// channel présent mais sans displayName ni avatars
|
||||
'uuid' => 'jkl-012',
|
||||
'channel' => ['name' => 'compte'],
|
||||
],
|
||||
]);
|
||||
|
||||
assertEquals(2, count($incompleteVideos), 'formatVideosData ignore les entrées sans uuid');
|
||||
|
||||
assertEquals('ghi-789', $incompleteVideos[0]['id'], 'formatVideosData conserve l\'uuid seul');
|
||||
assertEquals('', $incompleteVideos[0]['title'], 'formatVideosData met un titre vide par défaut');
|
||||
assertEquals(0, $incompleteVideos[0]['duration'], 'formatVideosData met une durée à 0 par défaut');
|
||||
assertEquals('', $incompleteVideos[0]['channel'], 'formatVideosData met une chaîne vide par défaut');
|
||||
assertEquals(0, $incompleteVideos[0]['views'], 'formatVideosData met les vues à 0 par défaut');
|
||||
assertEquals('', $incompleteVideos[0]['date'], 'formatVideosData met une date vide par défaut');
|
||||
assertNull($incompleteVideos[0]['aspectRatio'], 'formatVideosData met aspectRatio à null par défaut');
|
||||
assertFalse($incompleteVideos[0]['isLive'], 'formatVideosData met isLive à false par défaut');
|
||||
assertEquals(
|
||||
'img/default-thumbnail.jpg',
|
||||
$incompleteVideos[0]['thumbnail'],
|
||||
'formatVideosData met la vignette par défaut pour une entrée minimale'
|
||||
);
|
||||
assertEquals(
|
||||
'img/default-avatar.png',
|
||||
$incompleteVideos[0]['channelAvatar'],
|
||||
'formatVideosData met l\'avatar par défaut pour une entrée minimale'
|
||||
);
|
||||
|
||||
assertEquals('', $incompleteVideos[1]['channel'], 'formatVideosData met une chaîne vide si displayName absent');
|
||||
assertEquals(
|
||||
'img/default-avatar.png',
|
||||
$incompleteVideos[1]['channelAvatar'],
|
||||
'formatVideosData met l\'avatar par défaut si le tableau avatars est absent'
|
||||
);
|
||||
|
||||
// --- truncateText (includes/structured-data.php) ----------------------------
|
||||
|
||||
assertEquals('court', truncateText('court', 200), 'truncateText laisse un texte court intact');
|
||||
|
||||
Reference in New Issue
Block a user