public void IsNonPrecompiledAppReturnsTrue_VPPRegistrationChanging()
        {
            // Arrange
            string fileContent = @"<precompiledApp version=""2"" updatable=""false""/>";
            IVirtualPathUtility pathUtility = GetVirtualPathUtility();

            Mock <VirtualPathProvider> mockProvider1 = new Mock <VirtualPathProvider>();

            mockProvider1.Setup(c => c.FileExists(It.Is <string>(p => p.Equals(_precompileConfigFileName)))).Returns(true).Verifiable();
            mockProvider1.Setup(c => c.GetFile(It.Is <string>(p => p.Equals(_precompileConfigFileName)))).Returns(GetFile(fileContent)).Verifiable();

            Mock <VirtualPathProvider> mockProvider2 = new Mock <VirtualPathProvider>();

            mockProvider2.Setup(c => c.FileExists(It.Is <string>(p => p.Equals(_precompileConfigFileName)))).Returns(true).Verifiable();
            mockProvider2.Setup(c => c.GetFile(It.Is <string>(p => p.Equals(_precompileConfigFileName)))).Returns(GetFile(fileContent)).Verifiable();

            VirtualPathProvider provider = mockProvider1.Object;

            // Act; uses one VirtualPathProvider in constructor and the other when IsNonUpdatablePrecompiledApp() is called directly
            BuildManagerWrapper buildManagerWrapper = new BuildManagerWrapper(() => provider, pathUtility);

            // The moral equivalent of HostingEnvironment.RegisterVirtualPathProvider(provider2.Object)
            provider = mockProvider2.Object;

            bool isPrecompiled = buildManagerWrapper.IsNonUpdatablePrecompiledApp();

            // Assert
            Assert.True(isPrecompiled);
            mockProvider1.Verify();
            mockProvider1.Verify(vpp => vpp.FileExists(It.IsAny <string>()), Times.Once());
            mockProvider1.Verify(vpp => vpp.GetFile(It.IsAny <string>()), Times.Once());
            mockProvider2.Verify();
            mockProvider2.Verify(vpp => vpp.FileExists(It.IsAny <string>()), Times.Once());
            mockProvider2.Verify(vpp => vpp.GetFile(It.IsAny <string>()), Times.Once());
        }
 public BuildManagerWrapper(VirtualPathProvider vpp, IVirtualPathUtility virtualPathUtility)
 {
     _vpp = vpp;
     _virtualPathUtility = virtualPathUtility;
     _isPrecompiled      = IsNonUpdatablePrecompiledApp();
     if (!_isPrecompiled)
     {
         _vppCache = new FileExistenceCache(vpp);
     }
 }
        public KlondikeHtmlMicrodataFormatter(IVirtualPathUtility virtualPathUtility)
        {
            SupportedMediaTypes.Add(new MediaTypeWithQualityHeaderValue("application/xml"));
            SupportedMediaTypes.Add(new MediaTypeWithQualityHeaderValue("text/xml"));

            Settings.Indent = true;

            Title = "Klondike API";

            cssLazy = new Lazy<IEnumerable<string>>(FindSylesheets);
            this.virtualPathUtility = virtualPathUtility;
        }
        public KlondikeHtmlMicrodataFormatter(IVirtualPathUtility virtualPathUtility)
        {
            SupportedMediaTypes.Add(new MediaTypeWithQualityHeaderValue("application/xml"));
            SupportedMediaTypes.Add(new MediaTypeWithQualityHeaderValue("text/xml"));

            Settings.Indent = true;

            Title = "Klondike API";

            cssLazy = new Lazy <IEnumerable <string> >(FindSylesheets);
            this.virtualPathUtility = virtualPathUtility;
        }
        public BuildManagerWrapper(Func <VirtualPathProvider> vppFunc, IVirtualPathUtility virtualPathUtility)
        {
            Contract.Assert(vppFunc != null);
            Contract.Assert(virtualPathUtility != null);

            _vppFunc            = vppFunc;
            _virtualPathUtility = virtualPathUtility;
            _isPrecompiled      = IsNonUpdatablePrecompiledApp();
            if (!_isPrecompiled)
            {
                _vppCache = new FileExistenceCache(vppFunc);
            }
        }
        internal static bool IsNonUpdateablePrecompiledApp(
            VirtualPathProvider vpp,
            IVirtualPathUtility virtualPathUtility
            )
        {
            var virtualPath = virtualPathUtility.ToAbsolute("~/PrecompiledApp.config");

            if (!vpp.FileExists(virtualPath))
            {
                return(false);
            }

            XDocument document;

            using (Stream stream = vpp.GetFile(virtualPath).Open())
            {
                try
                {
                    document = XDocument.Load(stream);
                }
                catch
                {
                    // If we are unable to load the file, ignore it. The BuildManager behaves identically.
                    return(false);
                }
            }

            if (
                document.Root == null ||
                !document.Root.Name.LocalName.Equals(
                    "precompiledApp",
                    StringComparison.OrdinalIgnoreCase
                    )
                )
            {
                return(false);
            }
            var updatableAttribute = document.Root.Attribute("updatable");

            if (updatableAttribute != null)
            {
                bool result;
                return(Boolean.TryParse(updatableAttribute.Value, out result) && (result == false));
            }
            return(false);
        }
 public BuildManagerWrapper(VirtualPathProvider vpp, IVirtualPathUtility virtualPathUtility)
     : this(() => vpp, virtualPathUtility)
 {
     Contract.Assert(vpp != null);
 }
 /// <summary>
 /// Creates a new instance of <see cref="MvcUrlModule"/>, using the given dependencies.
 /// </summary>
 public MvcUrlModule(IVirtualPathUtility virtualPathUtility)
 {
     _virtualPathUtility = virtualPathUtility;
 }
Exemple #9
0
 /// <summary>
 /// Creates a new instance of <see cref="ServicesUrlModule"/>, using the given dependencies.
 /// </summary>
 public ServicesUrlModule(IVirtualPathUtility virtualPathUtility)
 {
     _virtualPathUtility = virtualPathUtility;
 }
Exemple #10
0
 /// <summary>
 /// Creates a new instance of <see cref="MasterPageVirtualPathProvider"/>, using the given dependencies.
 /// </summary>
 public MasterPageVirtualPathProvider(IVirtualPathUtility virtualPathUtility)
 {
     _virtualPathUtility = virtualPathUtility;
 }
Exemple #11
0
 public SelfHostSettings(CommandLineSettings commandLineSettings)
     : base(prefix: "")
 {
     this.commandLineSettings = commandLineSettings;
     this.virtualPathUtility  = new SelfHostVirtualPathUtility(BaseDirectory, VirtualPathRoot);
 }
 public ApiFrontPageController(IVirtualPathUtility virtualPathUtilityWrapper, IApplicationSettings appSettings)
 {
     _VirtualPathUtilityWrapper = virtualPathUtilityWrapper;
     _AppSettings = appSettings;
 }
Exemple #13
0
 /// <summary>
 /// Creates a new instance of <see cref="WebHelper"/>, using the given dependencies.
 /// </summary>
 public WebHelper(IVirtualPathUtility virtualPathUtility, IHttpContext httpContext)
 {
     _virtualPathUtility = virtualPathUtility;
     _httpContext        = httpContext;
 }
Exemple #14
0
 static PageHelper()
 {
     _virtualPathUtility = new VirtualPathUtilityWrapper();
     _httpContext        = new SystemHttpContextWrapper();
     _webHelper          = new WebHelper(_virtualPathUtility, _httpContext);
 }
Exemple #15
0
 public SelfHostSettings(CommandLineSettings commandLineSettings)
     :base(prefix:"")
 {
     this.commandLineSettings = commandLineSettings;
     this.virtualPathUtility = new SelfHostVirtualPathUtility(BaseDirectory, VirtualPathRoot);
 }
 public ApiFrontPageController(IVirtualPathUtility virtualPathUtilityWrapper, IApplicationSettings appSettings)
 {
     _VirtualPathUtilityWrapper = virtualPathUtilityWrapper;
     _AppSettings = appSettings;
 }
Exemple #17
0
 /// <summary>
 /// Initializes a new instance of the <see cref="MasterPageVirtualFile"/> class.
 /// </summary>
 ///
 /// <param name="virtualPath">The virtual path to the resource represented by this instance.</param>
 /// <param name="virtualPathUtility">The object used to resolve virtual paths.</param>
 public MasterPageVirtualFile(string virtualPath, IVirtualPathUtility virtualPathUtility)
     : base(virtualPath)
 {
     _virtualPath        = virtualPath;
     _virtualPathUtility = virtualPathUtility;
 }