OSDN Git Service

#27621 言語間リンク取得時に<includeonly>, <noinclude>を考慮するよう修正,
[wptscs/wpts.git] / WptscsTest / Utilities / AppConfigWebProxyTest.cs
1 // ================================================================================================
2 // <summary>
3 //      AppConfigWebProxyのテストクラスソース。</summary>
4 //
5 // <copyright file="AppConfigWebProxyTest.cs" company="honeplusのメモ帳">
6 //      Copyright (C) 2012 Honeplus. All rights reserved.</copyright>
7 // <author>
8 //      Honeplus</author>
9 // ================================================================================================
10
11 namespace Honememo.Wptscs.Utilities
12 {
13     using System;
14     using System.IO;
15     using Honememo.Wptscs.Properties;
16     using Honememo.Wptscs.Utilities;
17     using NUnit.Framework;
18
19     /// <summary>
20     /// <see cref="AppConfigWebProxy"/>のテストクラスです。
21     /// </summary>
22     [TestFixture]
23     class AppConfigWebProxyTest
24     {
25         #region 定数
26
27         /// <summary>
28         /// テストデータが格納されているフォルダパス。
29         /// </summary>
30         private static readonly string testFile = "Data\\config.xml";
31
32         #endregion
33
34         #region インタフェース実装プロパティテストケース
35
36         /// <summary>
37         /// <see cref="AppConfigWebProxy.UserAgent"/>プロパティテストケース。
38         /// </summary>
39         /// <remarks>アプリ設定部分はアクセス権の関係上試験できず。</remarks>
40         [Test]
41         public void TestUserAgent()
42         {
43             IWebProxy proxy = new AppConfigWebProxy();
44             ////Settings.Default.UserAgent = String.Empty;
45
46             // 初期状態ではアプリ名を元に生成した値
47             Version ver = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version;
48             ////Assert.AreEqual(
49             ////    String.Format(Settings.Default.DefaultUserAgent, ver.Major, ver.Minor),
50             ////    proxy.UserAgent);
51             Assert.AreEqual(
52                 String.Format("Translation Support for Wikipedia/{0}.{1:D2}", ver.Major, ver.Minor),
53                 proxy.UserAgent);
54
55             // プロパティ設定時はその値が返る
56             proxy.UserAgent = "test property useragent";
57             Assert.AreEqual("test property useragent", proxy.UserAgent);
58
59             // 空でも有効
60             proxy.UserAgent = String.Empty;
61             Assert.IsEmpty(proxy.UserAgent);
62
63             // nullなら無効
64             proxy.UserAgent = null;
65             Assert.IsNotEmpty(proxy.UserAgent);
66
67             // アプリ設定時はアプリに格納された設定値が最優先
68             ////Settings.Default.UserAgent = "test setting useragent";
69             ////Assert.AreEqual("test setting useragent", proxy.UserAgent);
70         }
71
72         /// <summary>
73         /// <see cref="AppConfigWebProxy.Referer"/>プロパティテストケース。
74         /// </summary>
75         /// <remarks>アプリ設定部分はアクセス権の関係上試験できず。</remarks>
76         [Test]
77         public void TestReferer()
78         {
79             IWebProxy proxy = new AppConfigWebProxy();
80             ////Settings.Default.Referer = String.Empty;
81
82             // 初期状態では空
83             Assert.IsEmpty(proxy.Referer);
84
85             // プロパティ設定時はその値が返る
86             proxy.Referer = "test property referer";
87             Assert.AreEqual("test property referer", proxy.Referer);
88
89             // アプリ設定時はアプリに格納された設定値
90             ////Settings.Default.Referer = "test setting referer";
91             ////Assert.AreEqual("test setting referer", proxy.Referer);
92         }
93
94         #endregion
95
96         #region インタフェース実装メソッドテストケース
97         
98         /// <summary>
99         /// <see cref="AppConfigWebProxy.GetStream"/>メソッドテストケース。
100         /// </summary>
101         /// <remarks>内容的に難しいため、fileプロトコルのみ確認。</remarks>
102         [Test]
103         public void TestGetStream()
104         {
105             IWebProxy proxy = new AppConfigWebProxy();
106
107             // テストファイルを読んで例外が発生しなければOKとする
108             UriBuilder b = new UriBuilder("file", String.Empty);
109             b.Path = Path.GetFullPath(testFile);
110             using (proxy.GetStream(b.Uri))
111             {
112             }
113         }
114
115         #endregion
116     }
117 }