}
[Fact]
+ public async Task ExpandUrlAsync_IrregularUrlTest()
+ {
+ var handler = new HttpMessageHandlerMock();
+ using (var http = new HttpClient(handler))
+ {
+ var shortUrl = new ShortUrl(http);
+
+ // https://www.flickr.com/photo.gne?short=hoge -> /photos/foo/11111/
+ handler.Enqueue(x =>
+ {
+ Assert.Equal(HttpMethod.Head, x.Method);
+ Assert.Equal(new Uri("https://www.flickr.com/photo.gne?short=hoge"), x.RequestUri);
+
+ return this.CreateRedirectResponse("/photos/foo/11111/");
+ });
+
+ Assert.Equal(new Uri("https://www.flickr.com/photos/foo/11111/"),
+ await shortUrl.ExpandUrlAsync(new Uri("https://www.flickr.com/photo.gne?short=hoge")));
+
+ Assert.Equal(0, handler.QueueCount);
+ }
+ }
+
+ [Fact]
public async Task ExpandUrlAsync_DisableExpandingTest()
{
var handler = new HttpMessageHandlerMock();
* FIX: UserStreamsから時々不正なJSONが送られてくる問題への対処
* FIX: ミュート機能がRecentタブで正しく動作していなかった不具合を修正
* FIX: 空のタブを表示した状態で Shift+H, Shift+M, Shift+L (画面上,中央,下のツイートを選択) を押下するとエラーが発生する不具合を修正
+ * FIX: flic.kr ドメインのURLでサムネイル表示が出来なくなっていた問題を修正
==== Ver 1.2.3(2014/09/03)
* NEW: UserSteams の (un)mute イベント追加に対応
try
{
- if (!ShortUrlHosts.Contains(uri.Host))
+ if (!ShortUrlHosts.Contains(uri.Host) && !IsIrregularShortUrl(uri))
return uri;
Uri expanded;
}
}
+ private bool IsIrregularShortUrl(Uri uri)
+ {
+ // Flickrの https://www.flickr.com/photo.gne?short=... 形式のURL
+ // flic.kr ドメインのURLを展開する途中に経由する
+ if (uri.Host.EndsWith("flickr.com", StringComparison.OrdinalIgnoreCase) &&
+ uri.PathAndQuery.StartsWith("/photo.gne", StringComparison.OrdinalIgnoreCase))
+ return true;
+
+ return false;
+ }
+
private async Task<Uri> GetRedirectTo(Uri url)
{
var request = new HttpRequestMessage(HttpMethod.Head, url);