Browse Source

Select empty MVC view template by default in Add MVC View dialog.

pull/18/head
Matt Ward 14 years ago
parent
commit
df50516c33
  1. 21
      src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/AddMvcViewToProjectViewModel.cs
  2. 5
      src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/MvcViewTextTemplate.cs
  3. 57
      src/AddIns/BackendBindings/AspNet.Mvc/Test/Src/AddMvcViewToProjectViewModelTests.cs

21
src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/AddMvcViewToProjectViewModel.cs

@ -149,12 +149,13 @@ namespace ICSharpCode.AspNet.Mvc @@ -149,12 +149,13 @@ namespace ICSharpCode.AspNet.Mvc
OnPropertyChanged(viewModel => viewModel.IsAspxViewEngineSelected);
OnPropertyChanged(viewModel => viewModel.IsRazorViewEngineSelected);
OnPropertyChanged(viewModel => viewModel.MasterPageFile);
OnPropertyChanged(viewModel => viewModel.ViewTemplates);
}
void AddViewTemplates()
{
viewTemplates = GetViewTemplates();
OnPropertyChanged(viewModel => viewModel.ViewTemplates);
SelectDefaultViewTemplate();
}
List<MvcViewTextTemplate> GetViewTemplates()
@ -169,13 +170,29 @@ namespace ICSharpCode.AspNet.Mvc @@ -169,13 +170,29 @@ namespace ICSharpCode.AspNet.Mvc
.ToList();
}
void SelectDefaultViewTemplate()
{
SelectedViewTemplate = GetEmptyViewTemplate();
if (SelectedViewTemplate == null) {
SelectedViewTemplate = viewTemplates.FirstOrDefault();
}
}
MvcViewTextTemplate GetEmptyViewTemplate()
{
return viewTemplates.Find(t => t.IsEmptyTemplate());
}
public IEnumerable<MvcViewTextTemplate> ViewTemplates {
get { return viewTemplates; }
}
public MvcViewTextTemplate SelectedViewTemplate {
get { return selectedViewTemplate; }
set { selectedViewTemplate = value; }
set {
selectedViewTemplate = value;
OnPropertyChanged(viewModel => viewModel.SelectedViewTemplate);
}
}
public bool IsRazorViewEngineSelected { get; private set; }

5
src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/MvcViewTextTemplate.cs

@ -21,5 +21,10 @@ namespace ICSharpCode.AspNet.Mvc @@ -21,5 +21,10 @@ namespace ICSharpCode.AspNet.Mvc
public string Name { get; set; }
public string FileName { get; set; }
public bool IsEmptyTemplate()
{
return "Empty".Equals(Name, StringComparison.InvariantCultureIgnoreCase);
}
}
}

57
src/AddIns/BackendBindings/AspNet.Mvc/Test/Src/AddMvcViewToProjectViewModelTests.cs

@ -1130,5 +1130,62 @@ namespace AspNet.Mvc.Tests @@ -1130,5 +1130,62 @@ namespace AspNet.Mvc.Tests
Assert.IsTrue(fired);
}
[Test]
public void SelectedViewTemplate_RazorViewEngineSelectedWhenThreeRazorViewTemplatesExist_EmptyTemplateSelectedByDefault()
{
CreateViewModel();
var templateA = new MvcViewTextTemplate(@"d:\razor\A.tt");
fakeTextTemplateRepository.ViewTextTemplates.Add(templateA);
var emptyTemplate = new MvcViewTextTemplate(@"d:\razor\Empty.tt");
fakeTextTemplateRepository.ViewTextTemplates.Add(emptyTemplate);
var templateZ = new MvcViewTextTemplate(@"d:\razor\Z.tt");
fakeTextTemplateRepository.ViewTextTemplates.Add(templateZ);
SelectRazorViewEngine();
MvcViewTextTemplate selectedTemplate = viewModel.SelectedViewTemplate;
Assert.AreEqual(emptyTemplate, selectedTemplate);
}
[Test]
public void SelectedViewTemplate_RazorViewEngineSelectedWhenTemplateNameIsInUpperCase_EmptyTemplateSelectedByDefault()
{
CreateViewModel();
var templateA = new MvcViewTextTemplate(@"d:\razor\A.tt");
fakeTextTemplateRepository.ViewTextTemplates.Add(templateA);
var emptyTemplate = new MvcViewTextTemplate(@"d:\razor\EMPTY.TT");
fakeTextTemplateRepository.ViewTextTemplates.Add(emptyTemplate);
SelectRazorViewEngine();
MvcViewTextTemplate selectedTemplate = viewModel.SelectedViewTemplate;
Assert.AreEqual(emptyTemplate, selectedTemplate);
}
[Test]
public void SelectedViewTemplate_RazorViewEngineSelectedAndNoEmptyTemplate_FirstTemplateSelectedByDefault()
{
CreateViewModel();
var templateA = new MvcViewTextTemplate(@"d:\razor\A.tt");
fakeTextTemplateRepository.ViewTextTemplates.Add(templateA);
SelectRazorViewEngine();
MvcViewTextTemplate selectedTemplate = viewModel.SelectedViewTemplate;
Assert.AreEqual(templateA, selectedTemplate);
}
[Test]
public void SelectedViewEngine_RazorViewEngineSelected_SelectedViewTemplatePropertyChangedEventIsFired()
{
CreateViewModel();
MonitorPropertyChangedEvents();
SelectRazorViewEngine();
bool fired = propertyChangedEvents.Contains("SelectedViewTemplate");
Assert.IsTrue(fired);
}
}
}

Loading…
Cancel
Save