import Foundation import Testing @testable import PlexKit /// Welche Reihe welche Kachelform bekommt. /// /// Weiterschauen lebt vom Szenenbild — man erkennt die Stelle wieder, an der /// man aufgehört hat. Überall sonst ist das Plakat richtig, denn danach sucht /// man einen Film aus. @Suite("Form der Reihen") struct HubShapeTests { @Test( "Angefangenes wird als Szenenbild gezeigt", arguments: ["home.continue", "continueWatching", "tv.ondeck", "home.ondeck"] ) func continueWatchingUsesLandscape(identifier: String) { #expect(PlexHub(hubIdentifier: identifier, title: "Weiterschauen").isContinueWatching) } @Test( "Alles andere bekommt Plakate", arguments: ["home.movies.recent", "movie.recentlyadded", "home.watchlist", "movie.collection", "tv.recentlyaired"] ) func everythingElseUsesPosters(identifier: String) { #expect(!PlexHub(hubIdentifier: identifier, title: "Irgendeine Reihe").isContinueWatching) } @Test("Die Entscheidung hängt nicht am übersetzten Titel") func titleDoesNotDecide() { // Der Titel kommt in der Sprache des Servers. Würde er die Form // bestimmen, sähe die Startseite auf Englisch anders aus als auf // Deutsch — und niemand käme auf die Ursache. let english = PlexHub(hubIdentifier: "home.continue", title: "Continue Watching") let german = PlexHub(hubIdentifier: "home.continue", title: "Weiterschauen") #expect(english.isContinueWatching == german.isContinueWatching) let misleading = PlexHub(hubIdentifier: "home.movies.recent", title: "Weiterschauen") #expect(!misleading.isContinueWatching) } @Test("Groß- und Kleinschreibung spielt keine Rolle") func caseInsensitive() { #expect(PlexHub(hubIdentifier: "Home.ContinueWatching", title: "x").isContinueWatching) } }