diff --git a/Html2Amp.IntegrationTests/Html2Amp.IntegrationTests.csproj b/Html2Amp.IntegrationTests/Html2Amp.IntegrationTests.csproj index 8bce04d..8bafe96 100644 --- a/Html2Amp.IntegrationTests/Html2Amp.IntegrationTests.csproj +++ b/Html2Amp.IntegrationTests/Html2Amp.IntegrationTests.csproj @@ -141,6 +141,8 @@ + + diff --git a/Html2Amp.IntegrationTests/TestData/YouTubeVideoSanitizationWithNoCookieHost/YouTubeVideoSanitizationWithNoCookieHost.in b/Html2Amp.IntegrationTests/TestData/YouTubeVideoSanitizationWithNoCookieHost/YouTubeVideoSanitizationWithNoCookieHost.in new file mode 100644 index 0000000..0d0cf42 --- /dev/null +++ b/Html2Amp.IntegrationTests/TestData/YouTubeVideoSanitizationWithNoCookieHost/YouTubeVideoSanitizationWithNoCookieHost.in @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/Html2Amp.IntegrationTests/TestData/YouTubeVideoSanitizationWithNoCookieHost/YouTubeVideoSanitizationWithNoCookieHost.out b/Html2Amp.IntegrationTests/TestData/YouTubeVideoSanitizationWithNoCookieHost/YouTubeVideoSanitizationWithNoCookieHost.out new file mode 100644 index 0000000..1b0d68c --- /dev/null +++ b/Html2Amp.IntegrationTests/TestData/YouTubeVideoSanitizationWithNoCookieHost/YouTubeVideoSanitizationWithNoCookieHost.out @@ -0,0 +1,2 @@ + \ No newline at end of file diff --git a/Html2Amp.IntegrationTests/Tests/YouTubeVideoSanitizationTests/YouTubeVideoSanitization.cs b/Html2Amp.IntegrationTests/Tests/YouTubeVideoSanitizationTests/YouTubeVideoSanitization.cs index 853e796..defeb57 100644 --- a/Html2Amp.IntegrationTests/Tests/YouTubeVideoSanitizationTests/YouTubeVideoSanitization.cs +++ b/Html2Amp.IntegrationTests/Tests/YouTubeVideoSanitizationTests/YouTubeVideoSanitization.cs @@ -131,5 +131,19 @@ public void YouTubeVideoSanitizationWithChildren() HtmlAssert.AreEqual(TestDataProvider.GetOutFile(TestName), actualResult); AmpAssert.IsValidAmp(TestName); } + + [TestMethod] + public void YouTubeVideoSanitizationWithNoCookieHost() + { + // Arrange + const string TestName = "YouTubeVideoSanitizationWithNoCookieHost"; + + // Act + var actualResult = HtmlTestFileToAmpConverter.Convert(TestName); + + // Assert + HtmlAssert.AreEqual(TestDataProvider.GetOutFile(TestName), actualResult); + AmpAssert.IsValidAmp(TestName); + } } } \ No newline at end of file diff --git a/Html2Amp.UnitTests/YouTubeVideoSanitizerTests/YouTubeVideoSanitizer_CanSanitizer_Should.cs b/Html2Amp.UnitTests/YouTubeVideoSanitizerTests/YouTubeVideoSanitizer_CanSanitizer_Should.cs index dafc7ea..e761e33 100644 --- a/Html2Amp.UnitTests/YouTubeVideoSanitizerTests/YouTubeVideoSanitizer_CanSanitizer_Should.cs +++ b/Html2Amp.UnitTests/YouTubeVideoSanitizerTests/YouTubeVideoSanitizer_CanSanitizer_Should.cs @@ -99,5 +99,19 @@ public void ReturnTrue_WhenSourceAttributeIsYouTubeDomainAndStartsWithWWW() // Assert Assert.IsTrue(actualResult); } + + [TestMethod] + public void ReturnTrue_WhenSourceAttributeIsYouTubeNoCookie() + { + // Arrange + var htmlElement = ElementFactory.CreateIFrame(); + htmlElement.Source = "http://www.youtube-nocookie.com/embed/d8fr3AdK_tQ4"; + + // Act + var actualResult = new YouTubeVideoSanitizer().CanSanitize(htmlElement); + + // Assert + Assert.IsTrue(actualResult); + } } } \ No newline at end of file diff --git a/Html2Amp/Sanitization/Implementation/YouTubeVideoSanitizer.cs b/Html2Amp/Sanitization/Implementation/YouTubeVideoSanitizer.cs index 22f2c61..7f4bdd9 100644 --- a/Html2Amp/Sanitization/Implementation/YouTubeVideoSanitizer.cs +++ b/Html2Amp/Sanitization/Implementation/YouTubeVideoSanitizer.cs @@ -28,7 +28,7 @@ public override bool CanSanitize(IElement element) if (Uri.TryCreate(sourceAttributeValue, UriKind.Absolute, out sourceUri)) { return sourceUri.LocalPath.StartsWith("/embed/") - && Regex.IsMatch(sourceUri.Host, @"^(www\.)?youtube\.com$"); + && Regex.IsMatch(sourceUri.Host, @"^(www\.)?youtube(-nocookie)?\.com$"); } return false;