public void ObsoleteGetVersionReturnsNullIfNoFilesInTheSite() { // Arrange var path = "blah"; var fileSystem = new TestFileSystem(); var configuration = new NameValueCollection(); // Act var version = WebPagesDeployment.GetObsoleteVersionInternal(path, configuration, fileSystem); // Assert Assert.Null(version); }
public void ObsoleteGetVersionReturnsV1VersionIfNoValueInConfigNoFilesInBinSiteContainsCshtmlFiles() { // Arrange var path = "blah"; var fileSystem = new TestFileSystem(); fileSystem.AddFile(@"blah\Foo.cshtml"); var configuration = new NameValueCollection(); // Act var version = WebPagesDeployment.GetObsoleteVersionInternal(path, configuration, fileSystem); // Assert Assert.Equal(new Version("1.0.0.0"), version); }
public void GetVersionReturnsValueEvenIfExplicitlyDisabled() { // Arrange var version = "1.2.3.4"; var appSettings = new NameValueCollection { { "webPages:Version", version }, { "webPages:Enabled", "False" } }; var maxVersion = new Version("2.0"); // Act var actualVersion = WebPagesDeployment.GetVersionInternal(appSettings, binVersion: null, defaultVersion: null); // Assert Assert.Equal(new Version(version), actualVersion); }
internal static IEnumerable <IAssembly> GetAssembliesForBindingRedirect(AppDomain appDomain, string binDirectoryPath, Func <AppDomain, string, IEnumerable <IAssembly> > getBinAssemblies) { var binAssemblies = getBinAssemblies(appDomain, binDirectoryPath).ToList(); if (!binAssemblies.Any()) { return(binAssemblies); } var webPagesAssemblies = from asm in WebPagesDeployment.GetWebPagesAssemblies() select LoadAssembly(asm.FullName, appDomain, isPath : false); return(webPagesAssemblies.Concat(binAssemblies) .Distinct() .ToList()); }
internal void DoPostResolveRequestCache(HttpContextBase context) { if (IsExplicitlyDisabled) { // If the root config is explicitly disabled, do not process the request. return; } // Parse incoming URL (we trim off the first two chars since they're always "~/") string requestPath = context.Request.AppRelativeCurrentExecutionFilePath.Substring(2) + context.Request.PathInfo; string[] registeredExtensions = WebPageHttpHandler.SupportedExtensions; // Check if this request matches a file in the app WebPageMatch webpageRouteMatch = MatchRequest(requestPath, registeredExtensions, VirtualPathFactoryManager.InstancePathExists, context, DisplayModeProvider.Instance); if (webpageRouteMatch != null) { // If it matches then save some data for the WebPage's UrlData context.Items[typeof(WebPageMatch)] = webpageRouteMatch; string virtualPath = "~/" + webpageRouteMatch.MatchedPath; // Verify that this path is enabled before remapping if (!WebPagesDeployment.IsExplicitlyDisabled(virtualPath)) { IHttpHandler handler = WebPageHttpHandler.CreateFromVirtualPath(virtualPath); if (handler != null) { SessionStateUtil.SetUpSessionState(context, handler); // Remap to our handler context.RemapHandler(handler); } } } else { // Bug:904704 If its not a match, but to a supported extension, we want to return a 404 instead of a 403 string extension = PathUtil.GetExtension(requestPath); foreach (string supportedExt in registeredExtensions) { if (String.Equals("." + supportedExt, extension, StringComparison.OrdinalIgnoreCase)) { throw new HttpException(404, null); } } } }
public void ObsoleteGetVersionReturnsVersionFromConfigIfDisabled() { // Arrange var maxVersion = new Version("3.0.3.4"); var fileSystem = new TestFileSystem(); var configuration = new NameValueCollection(); configuration["webPages:Enabled"] = "False"; configuration["webPages:Version"] = "3.0"; var path = "blah"; // Act var version = WebPagesDeployment.GetObsoleteVersionInternal(path, configuration, fileSystem); // Assert Assert.Equal(new Version("3.0.0.0"), version); }
public void GetVersionIgnoresUnsignedConfigDll() { AppDomainUtils.RunInSeparateAppDomain(() => { // Arrange - Load v2 Config Assembly asm = Assembly.LoadFrom(Path.Combine(_tempPath, @"ConfigTestAssemblies\V2_Unsigned\System.Web.WebPages.Deployment.dll")); Assert.Equal(new Version(2, 0, 0, 0), asm.GetName().Version); Assert.Equal("System.Web.WebPages.Deployment", asm.GetName().Name); using (WebUtils.CreateHttpRuntime(@"~\foo", ".")) { // Act Version ver = WebPagesDeployment.GetVersionWithoutEnabledCheck(Path.Combine(_tempPath, @"ConfigTestSites\CshtmlFileNoVersion")); // Assert Assert.Equal(new Version("1.0.0.0"), ver); } }); }
public void GetVersionReturnsLowerVersionIfSpecifiedInConfigAndNotExplicitlyDisabled() { AppDomainUtils.RunInSeparateAppDomain(() => { // Arrange - Load v2 Config Assembly asm = Assembly.LoadFrom(Path.Combine(_tempPath, @"ConfigTestAssemblies\V2_Signed\System.Web.WebPages.Deployment.dll")); Assert.Equal(new Version(2, 0, 0, 0), asm.GetName().Version); Assert.Equal("System.Web.WebPages.Deployment", asm.GetName().Name); using (WebUtils.CreateHttpRuntime(@"~\foo", ".")) { // Act Version ver = WebPagesDeployment.GetVersionWithoutEnabledCheck(Path.Combine(_tempPath, @"ConfigTestSites\NoCshtmlConfigV1")); // Assert Assert.Equal(new Version(1, 0, 0, 0), ver); } }); }
public void GetVersionReturnsV1IfCshtmlFilePresentButNoVersionIsSpecifiedInConfigOrBin() { AppDomainUtils.RunInSeparateAppDomain(() => { // Arrange - Load v2 Config Assembly asm = Assembly.LoadFrom(Path.Combine(_tempPath, @"ConfigTestAssemblies\V2_Signed\System.Web.WebPages.Deployment.dll")); Assert.Equal(new Version(2, 0, 0, 0), asm.GetName().Version); Assert.Equal("System.Web.WebPages.Deployment", asm.GetName().Name); using (WebUtils.CreateHttpRuntime(@"~\foo", ".")) { string path = Path.Combine(_tempPath, @"ConfigTestSites\CshtmlFileNoVersion"); // Act Version ver = WebPagesDeployment.GetVersionWithoutEnabledCheck(path); Version explicitVersion = WebPagesDeployment.GetExplicitWebPagesVersion(path); // Assert Assert.Equal(new Version("1.0.0.0"), ver); Assert.Null(explicitVersion); } }); }
public void IsExplicitlyDisabledReturnsFalseIfNoCshtmlAndNoConfigSetting() { Assert.False(WebPagesDeployment.IsExplicitlyDisabled(Path.Combine(_tempPath, @"ConfigTestSites\NoCshtmlNoConfigSetting"))); }
public void IsExplicitlyDisabledReturnsTrueIfNoCshtmlAndEnabledConfigSettingSetToFalse() { Assert.True(WebPagesDeployment.IsExplicitlyDisabled(Path.Combine(_tempPath, @"ConfigTestSites\NoCshtmlWithEnabledSettingFalse"))); }
public void IsEnabledReturnsTrueIfCshtmlFilePresent() { Assert.True(WebPagesDeployment.IsEnabled(Path.Combine(_tempPath, @"ConfigTestSites\CshtmlFileNoVersion"))); }
public void IsEnabledReturnsFalseIfNoCshtmlOrConfigFile() { Assert.False(WebPagesDeployment.IsEnabled(Path.Combine(_tempPath, @"ConfigTestSites\NoCshtml"))); }
public void IsEnabledThrowsIfPathNullOrEmpty() { Assert.ThrowsArgumentNullOrEmptyString(() => WebPagesDeployment.IsEnabled(null), "path"); Assert.ThrowsArgumentNullOrEmptyString(() => WebPagesDeployment.IsEnabled(String.Empty), "path"); }
public void GetVersionThrowsIfPathNullOrEmpty() { Assert.ThrowsArgumentNullOrEmptyString(() => WebPagesDeployment.GetVersionWithoutEnabledCheck(null), "path"); Assert.ThrowsArgumentNullOrEmptyString(() => WebPagesDeployment.GetVersionWithoutEnabledCheck(String.Empty), "path"); }