[bcl] Remove NET_4_0 defines from class libs
[mono.git] / mcs / class / System.Web / Test / System.Web / HttpBrowserCapabilitiesTest.cs
1 //
2 // System.Web.HttpBrowserCapabilitiesTest.cs - Unit tests for System.Web.HttpBrowserCapabilities
3 //
4 // Author:
5 //      Adar Wesley <adarw@mainsoft.com>
6 //
7 // Copyright (C) 2007 Mainsoft, Inc (http://www.mainsoft.com)
8 //
9 // Permission is hereby granted, free of charge, to any person obtaining
10 // a copy of this software and associated documentation files (the
11 // "Software"), to deal in the Software without restriction, including
12 // without limitation the rights to use, copy, modify, merge, publish,
13 // distribute, sublicense, and/or sell copies of the Software, and to
14 // permit persons to whom the Software is furnished to do so, subject to
15 // the following conditions:
16 // 
17 // The above copyright notice and this permission notice shall be
18 // included in all copies or substantial portions of the Software.
19 // 
20 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
21 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
23 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
24 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
25 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
26 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
27 //
28 using System;
29 using System.Web;
30 using System.Web.UI;
31 using NUnit.Framework;
32 using MonoTests.SystemWeb.Framework;
33 using System.Text;
34 using System.Web.Configuration;
35
36 namespace MonoTests.System.Web
37 {
38         [TestFixture]
39         public class HttpBrowserCapabilitiesTest
40         {
41                 [Test]
42                 [Category("NunitWeb")]
43                 public void DefaultCapabilities () 
44                 {
45                         WebTest t = new WebTest (PageInvoker.CreateOnLoad (Page_OnLoad));
46                         t.Run ();
47                 }
48
49                 public static void Page_OnLoad (Page p) 
50                 {
51                         HttpRequest request = p.Request;
52                         HttpCapabilitiesBase caps = request.Browser;
53                         Assert.IsNotNull (caps, "Loaded Capabilities");
54                 }
55
56                 [Test]
57                 [Category ("NunitWeb")]
58                 public void CapabilitiesUsedBySystemWebIE7 () 
59                 {
60                         WebTest t = new WebTest (PageInvoker.CreateOnLoad (CapabilitiesUsedBySystemWebIE7_OnLoad));
61                         // Set UserAgent string to IE7
62                         t.Request.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)";
63                         t.Run ();
64                 }
65
66                 public static void CapabilitiesUsedBySystemWebIE7_OnLoad (Page p) 
67                 {
68                         HttpRequest request = p.Request;
69                         HttpCapabilitiesBase caps = request.Browser;
70
71                         Assert.IsFalse (String.IsNullOrEmpty (caps.Browser), "Browser"); // Used in System.Web code
72                         Assert.IsTrue (new Version (1, 2) <= caps.EcmaScriptVersion, "EcmaScriptVersion"); // Used in System.Web code
73                         Assert.IsTrue (0 != caps.MajorVersion, "MajorVersion"); // Used in System.Web code
74                         Assert.IsFalse (String.IsNullOrEmpty (caps.Type), "Type"); // Used in System.Web code
75                         Assert.AreEqual (new Version (1, 0), caps.W3CDomVersion, "W3CDomVersion"); // Used in System.Web code
76                 }
77
78                 [Test]
79                 [Category ("NunitWeb")]
80                 public void CapabilitiesUsedBySystemWebIE6 () 
81                 {
82                         WebTest t = new WebTest (PageInvoker.CreateOnLoad (CapabilitiesUsedBySystemWebIE6_OnLoad));
83                         // Set UserAgent string to IE6
84                         t.Request.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; InfoPath.1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)";
85                         t.Run ();
86                 }
87
88                 public static void CapabilitiesUsedBySystemWebIE6_OnLoad (Page p) 
89                 {
90                         HttpRequest request = p.Request;
91                         HttpCapabilitiesBase caps = request.Browser;
92
93                         Assert.IsFalse (String.IsNullOrEmpty (caps.Browser), "Browser"); // Used in System.Web code
94                         Assert.IsTrue (new Version (1, 2) <= caps.EcmaScriptVersion, "EcmaScriptVersion"); // Used in System.Web code
95                         Assert.IsTrue (0 != caps.MajorVersion, "MajorVersion"); // Used in System.Web code
96                         Assert.IsFalse (String.IsNullOrEmpty (caps.Type), "Type"); // Used in System.Web code
97                         Assert.AreEqual (new Version (1, 0), caps.W3CDomVersion, "W3CDomVersion"); // Used in System.Web code
98                 }
99
100                 [Test]
101                 [Category ("NunitWeb")]
102                 public void CapabilitiesUsedBySystemWebFirefox () 
103                 {
104                         WebTest t = new WebTest (PageInvoker.CreateOnLoad (CapabilitiesUsedBySystemWebFirefox_OnLoad));
105                         // Set UserAgent string to IE7
106                         t.Request.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1";
107                         t.Run ();
108                 }
109
110                 public static void CapabilitiesUsedBySystemWebFirefox_OnLoad (Page p) 
111                 {
112                         HttpRequest request = p.Request;
113                         HttpCapabilitiesBase caps = request.Browser;
114
115                         Assert.IsFalse (String.IsNullOrEmpty(caps.Browser), "Browser"); // Used in System.Web code
116                         Assert.IsTrue (new Version (1, 2) <= caps.EcmaScriptVersion, "EcmaScriptVersion"); // Used in System.Web code
117                         Assert.IsTrue (0 != caps.MajorVersion, "MajorVersion"); // Used in System.Web code
118                         Assert.IsFalse (String.IsNullOrEmpty(caps.Type), "Type"); // Used in System.Web code
119                         Assert.AreEqual (new Version (1, 0), caps.W3CDomVersion, "W3CDomVersion"); // Used in System.Web code
120                 }
121
122                 [Test]
123                 [Category ("NunitWeb")]
124                 [Category ("NotWorking")]
125                 public void CapabilitiesValues () 
126                 {
127                         WebTest t = new WebTest (PageInvoker.CreateOnLoad (CapabilitiesValues_OnLoad));
128                         t.Run ();
129                 }
130
131                 public static void CapabilitiesValues_OnLoad (Page p) 
132                 {
133                         HttpRequest request = p.Request;
134                         HttpCapabilitiesBase caps = request.Browser;
135
136                         Assert.IsTrue (caps.ActiveXControls, "ActiveXControls");
137                         Assert.AreEqual (0, caps.Adapters.Count, "Adapters");
138                         Assert.IsFalse (caps.AOL, "AOL");
139                         Assert.IsTrue (caps.BackgroundSounds, "BackgroundSounds");
140                         Assert.IsFalse (caps.Beta, "Beta");
141                         Assert.AreEqual ("IE", caps.Browser, "Browser"); // Used in System.Web code
142                         Assert.IsTrue (caps.Browsers.Count > 0, "Browsers.Count > 0");
143                         Assert.IsTrue (caps.CanCombineFormsInDeck, "CanCombineFormsInDeck");
144                         Assert.IsFalse (caps.CanInitiateVoiceCall, "CanInitiateVoiceCall");
145                         Assert.IsTrue (caps.CanRenderAfterInputOrSelectElement, "CanRenderAfterInputOrSelectElement");
146                         Assert.IsTrue (caps.CanRenderEmptySelects, "CanRenderEmptySelects");
147                         Assert.IsTrue (caps.CanRenderInputAndSelectElementsTogether, "CanRenderInputAndSelectElementsTogether");
148                         Assert.IsTrue (caps.CanRenderMixedSelects, "CanRenderMixedSelects");
149                         Assert.IsTrue (caps.CanRenderOneventAndPrevElementsTogether, "CanRenderOneventAndPrevElementsTogether");
150                         Assert.IsTrue (caps.CanRenderPostBackCards, "CanRenderPostBackCards");
151                         Assert.IsTrue (caps.CanRenderSetvarZeroWithMultiSelectionList, "CanRenderSetvarZeroWithMultiSelectionList");
152                         Assert.IsTrue (caps.CanSendMail, "CanSendMail");
153                         Assert.IsFalse (caps.CDF, "CDF");
154                         Assert.IsTrue (caps.Cookies, "Cookies");
155                         Assert.IsFalse (caps.Crawler, "Crawler");
156                         Assert.AreEqual (1, caps.DefaultSubmitButtonLimit, "DefaultSubmitButtonLimit");
157                         Assert.AreEqual (new Version(1, 2), caps.EcmaScriptVersion, "EcmaScriptVersion"); // Used in System.Web code
158                         Assert.IsTrue (caps.Frames, "frames");
159                         Assert.AreEqual (0, caps.GatewayMajorVersion, "GatewayMajorVersion");
160                         Assert.AreEqual (0.0, caps.GatewayMinorVersion, "GatewayMinorVersion");
161                         Assert.AreEqual ("None", caps.GatewayVersion, "GatewayVersion");
162                         Assert.IsTrue (caps.HasBackButton, "HasBackButton");
163                         Assert.IsFalse (caps.HidesRightAlignedMultiselectScrollbars, "HidesRightAlignedMultiselectScrollbars");
164                         Assert.IsNull (caps.HtmlTextWriter, "HtmlTextWriter");
165                         Assert.AreEqual ("ie6to9", caps.Id, "Id");
166                         Assert.AreEqual ("keyboard", caps.InputType, "InputType");
167                         Assert.IsTrue (caps.IsColor, "IsColor");
168                         Assert.IsFalse (caps.IsMobileDevice, "IsMobileDevice");
169                         Assert.IsTrue (caps.JavaApplets, "JavaApplets");
170                         Assert.IsTrue (caps.JavaScript, "JavaScript");
171                         Assert.AreEqual (new Version(5, 6), caps.JScriptVersion, "JScriptVersion");
172                         Assert.AreEqual (6, caps.MajorVersion, "MajorVersion"); // Used in System.Web code
173                         Assert.AreEqual (10000, caps.MaximumHrefLength, "MaximumHrefLength");
174                         Assert.AreEqual (300000, caps.MaximumRenderedPageSize, "MaximumRenderedPageSize");
175                         Assert.AreEqual (5, caps.MaximumSoftkeyLabelLength, "MaximumSoftkeyLabelLength");
176                         Assert.AreEqual (0.0, caps.MinorVersion, "MinorVersion");
177                         Assert.AreEqual (".0", caps.MinorVersionString, "MinorVersionString");
178                         Assert.AreEqual ("Unknown", caps.MobileDeviceManufacturer, "MobileDeviceManufacturer");
179                         Assert.AreEqual ("Unknown", caps.MobileDeviceModel, "MobileDeviceModel");
180                         Assert.AreEqual (new Version(6, 0), caps.MSDomVersion, "MSDomVersion");
181                         Assert.AreEqual (0, caps.NumberOfSoftkeys, "NumberOfSoftkeys");
182                         Assert.AreEqual ("WinXP", caps.Platform, "Platform");
183                         Assert.AreEqual ("image/gif", caps.PreferredImageMime, "PreferredImageMime");
184                         Assert.AreEqual ("text/html", caps.PreferredRenderingMime, "PreferredRenderingMime");
185                         Assert.AreEqual ("html32", caps.PreferredRenderingType, "PreferredRenderingType");
186                         Assert.IsNull (caps.PreferredRequestEncoding, "PreferredRequestEncoding");
187                         Assert.IsNull (caps.PreferredResponseEncoding, "PreferredResponseEncoding");
188                         Assert.IsFalse (caps.RendersBreakBeforeWmlSelectAndInput, "RendersBreakBeforeWmlSelectAndInput");
189                         Assert.IsTrue (caps.RendersBreaksAfterHtmlLists, "RendersBreaksAfterHtmlLists");
190                         Assert.IsFalse (caps.RendersBreaksAfterWmlAnchor, "RendersBreaksAfterWmlAnchor");
191                         Assert.IsFalse (caps.RendersBreaksAfterWmlInput, "RendersBreaksAfterWmlInput");
192                         Assert.IsTrue (caps.RendersWmlDoAcceptsInline, "RendersWmlDoAcceptsInline");
193                         Assert.IsFalse (caps.RendersWmlSelectsAsMenuCards, "RendersWmlSelectsAsMenuCards");
194                         Assert.IsNull (caps.RequiredMetaTagNameValue, "RequiredMetaTagNameValue");
195                         Assert.IsFalse (caps.RequiresAttributeColonSubstitution, "RequiresAttributeColonSubstitution");
196                         Assert.IsFalse (caps.RequiresContentTypeMetaTag, "RequiresContentTypeMetaTag");
197                         Assert.IsFalse (caps.RequiresControlStateInSession, "RequiresControlStateInSession");
198                         Assert.IsFalse (caps.RequiresDBCSCharacter, "RequiresDBCSCharacter");
199                         Assert.IsFalse (caps.RequiresHtmlAdaptiveErrorReporting, "RequiresHtmlAdaptiveErrorReporting");
200                         Assert.IsFalse (caps.RequiresLeadingPageBreak, "RequiresLeadingPageBreak");
201                         Assert.IsFalse (caps.RequiresNoBreakInFormatting, "RequiresNoBreakInFormatting");
202                         Assert.IsFalse (caps.RequiresOutputOptimization, "RequiresOutputOptimization");
203                         Assert.IsFalse (caps.RequiresPhoneNumbersAsPlainText, "RequiresPhoneNumbersAsPlainText");
204                         Assert.IsFalse (caps.RequiresSpecialViewStateEncoding, "RequiresSpecialViewStateEncoding");
205                         Assert.IsFalse (caps.RequiresUniqueFilePathSuffix, "RequiresUniqueFilePathSuffix");
206                         Assert.IsFalse (caps.RequiresUniqueHtmlCheckboxNames, "RequiresUniqueHtmlCheckboxNames");
207                         Assert.IsFalse (caps.RequiresUniqueHtmlInputNames, "RequiresUniqueHtmlInputNames");
208                         Assert.IsFalse (caps.RequiresUrlEncodedPostfieldValues, "RequiresUrlEncodedPostfieldValues");
209                         Assert.AreEqual (8, caps.ScreenBitDepth, "ScreenBitDepth");
210                         Assert.AreEqual (40, caps.ScreenCharactersHeight, "ScreenCharactersHeight");
211                         Assert.AreEqual (80, caps.ScreenCharactersWidth, "ScreenCharactersWidth");
212                         Assert.AreEqual (480, caps.ScreenPixelsHeight, "ScreenPixelsHeight");
213                         Assert.AreEqual (640, caps.ScreenPixelsWidth, "ScreenPixelsWidth");
214                         Assert.IsFalse (caps.SupportsAccesskeyAttribute, "SupportsAccesskeyAttribute");
215                         Assert.IsTrue (caps.SupportsBodyColor, "SupportsBodyColor");
216                         Assert.IsTrue (caps.SupportsBold, "SupportsBold");
217                         Assert.IsTrue (caps.SupportsCacheControlMetaTag, "SupportsCacheControlMetaTag");
218                         Assert.IsTrue (caps.SupportsCallback, "SupportsCallback");
219                         Assert.IsTrue (caps.SupportsCss, "SupportsCss");
220                         Assert.IsTrue (caps.SupportsDivAlign, "SupportsDivAlign");
221                         Assert.IsTrue (caps.SupportsDivNoWrap, "SupportsDivNoWrap");
222                         Assert.IsTrue (caps.SupportsEmptyStringInCookieValue, "SupportsEmptyStringInCookieValue");
223                         Assert.IsTrue (caps.SupportsFontColor, "SupportsFontColor");
224                         Assert.IsTrue (caps.SupportsFontName, "SupportsFontName");
225                         Assert.IsTrue (caps.SupportsFontSize, "SupportsFontSize");
226                         Assert.IsTrue (caps.SupportsImageSubmit, "SupportsImageSubmit");
227                         Assert.IsFalse (caps.SupportsIModeSymbols, "SupportsIModeSymbols");
228                         Assert.IsFalse (caps.SupportsInputIStyle, "SupportsInputIStyle");
229                         Assert.IsFalse (caps.SupportsInputMode, "SupportsInputMode");
230                         Assert.IsTrue (caps.SupportsItalic, "SupportsItalic");
231                         Assert.IsFalse (caps.SupportsJPhoneMultiMediaAttributes, "SupportsJPhoneMultiMediaAttributes");
232                         Assert.IsFalse (caps.SupportsJPhoneSymbols, "SupportsJPhoneSymbols");
233                         Assert.IsTrue (caps.SupportsQueryStringInFormAction, "SupportsQueryStringInFormAction");
234                         Assert.IsTrue (caps.SupportsRedirectWithCookie, "SupportsRedirectWithCookie");
235                         Assert.IsTrue (caps.SupportsSelectMultiple, "SupportsSelectMultiple");
236                         Assert.IsTrue (caps.SupportsUncheck, "SupportsUncheck");
237                         Assert.IsTrue (caps.SupportsXmlHttp, "SupportsXmlHttp");
238                         Assert.IsTrue (caps.Tables, "Tables");
239                         Assert.AreEqual ("IE6", caps.Type, "Type"); // Used in System.Web code
240                         Assert.IsTrue (caps.UseOptimizedCacheKey, "UseOptimizedCacheKey");
241                         Assert.IsTrue (caps.VBScript, "VBScript");
242                         Assert.AreEqual ("6.0", caps.Version, "Version");
243                         Assert.AreEqual (new Version (1, 0), caps.W3CDomVersion, "W3CDomVersion"); // Used in System.Web code
244                         Assert.IsFalse (caps.Win16, "Win16");
245                         Assert.IsTrue (caps.Win32, "Win32");
246                 }
247         }
248 }