From 195ab156d11f48481931982fd46e8a065564836f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Herceg?= Date: Sun, 17 Dec 2023 14:59:57 +0100 Subject: [PATCH 1/2] Fixed issue with master page defines as embedded resource --- .../Hosting/EmbeddedMarkupFileLoader.cs | 2 +- .../Common/DotVVM.Samples.Common.csproj | 4 ++++ .../EmbeddedResourceMasterPageViewModel.cs | 16 ++++++++++++++++ ...eWithEmbeddedResourceMasterPageViewModel.cs | 16 ++++++++++++++++ .../EmbeddedResourceMasterPage.dotmaster | 18 ++++++++++++++++++ .../PageWithEmbeddedResourceMasterPage.dothtml | 9 +++++++++ 6 files changed, 64 insertions(+), 1 deletion(-) create mode 100644 src/Samples/Common/ViewModels/FeatureSamples/EmbeddedResourceControls/EmbeddedResourceMasterPageViewModel.cs create mode 100644 src/Samples/Common/ViewModels/FeatureSamples/EmbeddedResourceControls/PageWithEmbeddedResourceMasterPageViewModel.cs create mode 100644 src/Samples/Common/Views/FeatureSamples/EmbeddedResourceControls/EmbeddedResourceMasterPage.dotmaster create mode 100644 src/Samples/Common/Views/FeatureSamples/EmbeddedResourceControls/PageWithEmbeddedResourceMasterPage.dothtml diff --git a/src/Framework/Framework/Hosting/EmbeddedMarkupFileLoader.cs b/src/Framework/Framework/Hosting/EmbeddedMarkupFileLoader.cs index 2abaeb0017..c424c37c7a 100644 --- a/src/Framework/Framework/Hosting/EmbeddedMarkupFileLoader.cs +++ b/src/Framework/Framework/Hosting/EmbeddedMarkupFileLoader.cs @@ -50,7 +50,7 @@ public class EmbeddedMarkupFileLoader : IMarkupFileLoader //load the file using (Stream stream = assembly.GetManifestResourceStream(resourceName)!) using (StreamReader sr = new StreamReader(stream)) - return new MarkupFile(resourceName, resourceName, sr.ReadToEnd()); + return new MarkupFile(virtualPath, virtualPath, sr.ReadToEnd()); } /// diff --git a/src/Samples/Common/DotVVM.Samples.Common.csproj b/src/Samples/Common/DotVVM.Samples.Common.csproj index 1bad72d894..09852a5a42 100644 --- a/src/Samples/Common/DotVVM.Samples.Common.csproj +++ b/src/Samples/Common/DotVVM.Samples.Common.csproj @@ -20,6 +20,7 @@ + @@ -98,6 +99,8 @@ + + @@ -193,6 +196,7 @@ + diff --git a/src/Samples/Common/ViewModels/FeatureSamples/EmbeddedResourceControls/EmbeddedResourceMasterPageViewModel.cs b/src/Samples/Common/ViewModels/FeatureSamples/EmbeddedResourceControls/EmbeddedResourceMasterPageViewModel.cs new file mode 100644 index 0000000000..f1f72fa895 --- /dev/null +++ b/src/Samples/Common/ViewModels/FeatureSamples/EmbeddedResourceControls/EmbeddedResourceMasterPageViewModel.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using DotVVM.Framework.ViewModel; +using DotVVM.Framework.Hosting; + +namespace DotVVM.Samples.Common.ViewModels.FeatureSamples.EmbeddedResourceControls +{ + public class EmbeddedResourceMasterPageViewModel : DotvvmViewModelBase + { + + } +} + diff --git a/src/Samples/Common/ViewModels/FeatureSamples/EmbeddedResourceControls/PageWithEmbeddedResourceMasterPageViewModel.cs b/src/Samples/Common/ViewModels/FeatureSamples/EmbeddedResourceControls/PageWithEmbeddedResourceMasterPageViewModel.cs new file mode 100644 index 0000000000..aa13b42bc3 --- /dev/null +++ b/src/Samples/Common/ViewModels/FeatureSamples/EmbeddedResourceControls/PageWithEmbeddedResourceMasterPageViewModel.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using DotVVM.Framework.ViewModel; +using DotVVM.Framework.Hosting; + +namespace DotVVM.Samples.Common.ViewModels.FeatureSamples.EmbeddedResourceControls +{ + public class PageWithEmbeddedResourceMasterPageViewModel : EmbeddedResourceMasterPageViewModel + { + + } +} + diff --git a/src/Samples/Common/Views/FeatureSamples/EmbeddedResourceControls/EmbeddedResourceMasterPage.dotmaster b/src/Samples/Common/Views/FeatureSamples/EmbeddedResourceControls/EmbeddedResourceMasterPage.dotmaster new file mode 100644 index 0000000000..5479abf84f --- /dev/null +++ b/src/Samples/Common/Views/FeatureSamples/EmbeddedResourceControls/EmbeddedResourceMasterPage.dotmaster @@ -0,0 +1,18 @@ +@viewModel DotVVM.Samples.Common.ViewModels.FeatureSamples.EmbeddedResourceControls.EmbeddedResourceMasterPageViewModel, DotVVM.Samples.Common + + + + + + + + + +

Embedded resource master page

+ + + + + + + diff --git a/src/Samples/Common/Views/FeatureSamples/EmbeddedResourceControls/PageWithEmbeddedResourceMasterPage.dothtml b/src/Samples/Common/Views/FeatureSamples/EmbeddedResourceControls/PageWithEmbeddedResourceMasterPage.dothtml new file mode 100644 index 0000000000..b0d2c18b4c --- /dev/null +++ b/src/Samples/Common/Views/FeatureSamples/EmbeddedResourceControls/PageWithEmbeddedResourceMasterPage.dothtml @@ -0,0 +1,9 @@ +@viewModel DotVVM.Samples.Common.ViewModels.FeatureSamples.EmbeddedResourceControls.PageWithEmbeddedResourceMasterPageViewModel, DotVVM.Samples.Common +@masterPage embedded://DotVVM.Samples.Common/Views.FeatureSamples.EmbeddedResourceControls.EmbeddedResourceMasterPage.dotmaster + + + +

Success

+ +
+ From 2d4d50c1a2bf28d103601c49323c416d2e37ecba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Herceg?= Date: Sun, 17 Dec 2023 15:05:15 +0100 Subject: [PATCH 2/2] UI test added --- .../Tests/Abstractions/SamplesRouteUrls.designer.cs | 1 + .../Tests/Feature/EmbeddedResourceControlsTests.cs | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/src/Samples/Tests/Abstractions/SamplesRouteUrls.designer.cs b/src/Samples/Tests/Abstractions/SamplesRouteUrls.designer.cs index 013a4cb75e..fe2388d721 100644 --- a/src/Samples/Tests/Abstractions/SamplesRouteUrls.designer.cs +++ b/src/Samples/Tests/Abstractions/SamplesRouteUrls.designer.cs @@ -248,6 +248,7 @@ public partial class SamplesRouteUrls public const string FeatureSamples_Directives_ImportDirectiveInvalid = "FeatureSamples/Directives/ImportDirectiveInvalid"; public const string FeatureSamples_Directives_ViewModelMissingAssembly = "FeatureSamples/Directives/ViewModelMissingAssembly"; public const string FeatureSamples_EmbeddedResourceControls_EmbeddedResourceControls = "FeatureSamples/EmbeddedResourceControls/EmbeddedResourceControls"; + public const string FeatureSamples_EmbeddedResourceControls_PageWithEmbeddedResourceMasterPage = "FeatureSamples/EmbeddedResourceControls/PageWithEmbeddedResourceMasterPage"; public const string FeatureSamples_Formatting_AutoResourceInclusion = "FeatureSamples/Formatting/AutoResourceInclusion"; public const string FeatureSamples_Formatting_Formatting = "FeatureSamples/Formatting/Formatting"; public const string FeatureSamples_Formatting_ToStringGlobalFunctionBug = "FeatureSamples/Formatting/ToStringGlobalFunctionBug"; diff --git a/src/Samples/Tests/Tests/Feature/EmbeddedResourceControlsTests.cs b/src/Samples/Tests/Tests/Feature/EmbeddedResourceControlsTests.cs index 68957c23dc..a7c07f53da 100644 --- a/src/Samples/Tests/Tests/Feature/EmbeddedResourceControlsTests.cs +++ b/src/Samples/Tests/Tests/Feature/EmbeddedResourceControlsTests.cs @@ -25,5 +25,15 @@ public void Feature_EmbeddedResourceControls_EmbeddedResourceControls() AssertUI.Attribute(browser.First("input[type=button]"), "value", "This is text"); }); } + + [Fact] + public void Feature_EmbeddedResourceControls_PageWithEmbeddedResourceMasterPage() + { + RunInAllBrowsers(browser => { + browser.NavigateToUrl(SamplesRouteUrls.FeatureSamples_EmbeddedResourceControls_PageWithEmbeddedResourceMasterPage); + + AssertUI.TextEquals(browser.Single("p"), "Success"); + }); + } } }