Commit Graph

1793 Commits

Author SHA1 Message Date
Ajay Bhargav Baaskaran fcdbd17e58 Removed Diagnostics.Abstractions dependency from Mvc.Razor 2015-06-16 10:25:26 -07:00
Ajay Bhargav Baaskaran 6fd8465402 Removed unnecessary cors dependency 2015-06-16 10:25:25 -07:00
Chris R a668f4e1c0 React to HttpResponse.HeadersSent rename. 2015-06-15 18:29:20 -07:00
Doug Bunting 296ec7736e Go one less step when resolving `[ModelMetadataType]`
- #2610
- make MVC 6's attribute consistent with data annotation's `[MetadataType]`, used in MVC 5
2015-06-14 18:02:10 -07:00
Ryan Nowak faaba481e8 Adding an 'AddMinimalMvc()' for Mvc.Core and sample
This adds the ability to configure Mvc.Core for a project; MVC with
minimal services and dependencies.
2015-06-12 11:29:47 -07:00
Ryan Nowak a665e48826 A new pattern for adding multi-registration services
This is some cleanup of how we add multi-registration services to avoid
duplication when calling AddMvcServices multiple times. Also improved
tests to be more clear, and to verify all of our special cases
explicitly.
2015-06-12 11:29:42 -07:00
Ryan Nowak 0861612779 A new pattern for adding multi-registration services
This is some cleanup of how we add multi-registration services to avoid
duplication when calling AddMvcServices multiple times. Also improved
tests to be more clear, and to verify all of our special cases
explicitly.
2015-06-12 11:23:51 -07:00
Hisham Abdullah Bin Ateya 1f9a451e2f Using 'nameof' operator instead of margic strings 2015-06-12 02:26:34 +03:00
Ajay Bhargav Baaskaran a3c593bda9 [Fixes #2409] Return EmptyResult for void actions 2015-06-11 11:51:51 -07:00
N. Taylor Mullen 31aa51ba49 React to aspnet/Razor#172. 2015-06-10 14:43:08 -07:00
Doug Bunting 3f6ab3bb03 Add `ModelMetadata.ElementMetadata`
- #2664
- use new property to correctly determine `isTargetEnum` in `GetCurrentValues()`
 - avoid `ArgumentNullException` in all cases where raw values are `enum` but target is not
- stop skipping tests blocked by #2664, exposing a couple more #1487 issues
- use new property instead of private `GetElementType()` methods where possible
 - cleans up some duplicate code
 - also remove redundant use of `IsCollectionType` and `ElementMetadata`

nits:
- move properties above methods in `ModelMetadata`
- avoid accidentally-incorrect "Remove Unnecessary Usings"
2015-06-10 12:02:50 -07:00
Doug Bunting afd5b4f2a6 Demonstrate #1485, #1487, #2662, #2664 in functional and unit tests
- test additional cases _close_ to these bugs as well

for #1485
- show odd `@Html.CheckBox()`, `@Html.Hidden()` behaviour in unit tests
- show odd `@Html.TextBox()` behaviour in functional tests (templates)

for #1487
- show odd `@Html.Value()` behaviour in unit tests
- show odd `@Html.RadioButton()`, `@Html.TextArea()` behaviour in functional tests
- show lack of validation attributes for `@Html.RadioButton()`, `<select>` tag helper

for #2662
- show odd `@Html.RadioButton(string.Empty)` behaviour in functional tests

for #2664
- show failures with `@Html.ListBox()` in unit tests

nits:
- test `IHtmlHelper` methods, not extensions
- use `ViewData`, not `ViewBag` in `HtmlGeneration_FormController`
- name test methods a bit more consistently
- rename `HtmlHelperValueExtensionsTest` to `HtmlHelperValueTest`
2015-06-10 10:22:40 -07:00
Ajay Bhargav Baaskaran 37d1881dad [Fixes #2609] Support for binding all integer types to enums 2015-06-09 16:08:38 -07:00
Ajay Bhargav Baaskaran a40d4aef2b React to aspnet/Diagnostics#140 change 2015-06-09 15:57:09 -07:00
Ryan Nowak a679e87a9b Split Mvc.Core
This is the first step is some more refactorings to come in the future
with the goal of making MVC less monolythic. This makes the core of MVC
more reusable and more in line with the design of other vNext platform
components.

With this change, Mvc.Core contains just the minimal guts needed to build
a working app.
- Action Discovery
- Action Invoker
- Filters
- ObjectResult
- Model Metadata
- Model Binding
- Formatters
- Validation System

And yes, we are aware of the irony of 'minimal MVC' not including the view
system. The idea is that this is the kernel of an MVC app, and anything
real is layered on top.

The most noticable impact of this change is that MvcOptions has been blown
apart into more managable chunks. See the various ConfigureMvc*** methods.

The new Mvc.Extensions package is a placeholder while we evaluate and tune
the new definitions. Expect more changes as features are move to their own
packages, and in some case their own repositories.

For now there is no experience to bootstrap an Mvc.Core app. That's coming
next.
2015-06-09 02:12:13 -07:00
Ryan Nowak 03571cc27b Event Notification for MVC Prototype
Here's a first take on the pattern for publishing notifications from MVC.
2015-06-08 17:49:33 -07:00
Ryan Nowak a452b10ba4 Fix #2278 - Only activate public properties 2015-06-08 15:54:16 -07:00
Ajay Bhargav Baaskaran f5cabf2029 [Fixes #2564] Support comma separated string include in BindAttribute
This reverts commit 7746d0f451.
2015-06-08 14:30:10 -07:00
Ajay Bhargav Baaskaran 7746d0f451 Revert "[Fixes #2609] Support comma separated string include in BindAttribute"
This reverts commit eba352166d.
2015-06-08 14:29:59 -07:00
Ajay Bhargav Baaskaran eba352166d [Fixes #2609] Support comma separated string include in BindAttribute 2015-06-08 14:02:26 -07:00
Kirthi Krishnamraju 12ed69e72a Fix build break: Add HelloWorld.htm to LocalizationWebSite 2015-06-08 12:49:22 -07:00
Kirthi Krishnamraju 74b193b15d Added configurable option for LanguageViewLocationExpander to use subfolder or suffix 2015-06-08 12:07:49 -07:00
Harsh Gupta 67d0bf880a Fixing 2340: ModelMetadata should recompute localizable properties. 2015-06-08 11:07:59 -07:00
Kiran Challa 0469103683 React to Session api review changes 2015-06-08 09:44:05 -07:00
Ryan Nowak 6cd277e8aa Refactor I***ModelBuilder extensibility
Combining IControllerModelBuilder and IActionModelBuilder into a pipeline
of IApplicationModelBuilders. Extensibility for framework features (Auth,
Cors, etc) should implement an IApplicationModelBuilder to add data to
models before IApplicationModelConventions have a chance to run.

Also deleting IGlobalFilterProvider while touching this code, this should
have been removed a while ago when we removed other options facades.
2015-06-07 18:07:41 -07:00
Doug Bunting 261975b0bc Rename `MvcTagHelpersWebSite` to `HtmlGenerationsWebSite`
- name was too specific and I am about to add another HTML helper scenario
2015-06-05 20:30:17 -07:00
Doug Bunting eefa582069 Address #2526; remove use of a required validator when validating `[BindRequired]`
- only use MVC error message when `[BindRequired]` is violated
- update that error message to more clearly describe the problem
- enable all tests skipped due to dupe bug #2493
- update expectations of a few tests using the old messages

nits:
- rename `ModelBinding_MissingRequiredMember` to `ModelBinding_MissingBindRequiredMember`
- remove `<param>` description of removed `requiredValidator` parameter
- remove unused `MutableObjectModelBinderTest.GetRequiredValidator()`
2015-06-05 16:56:05 -07:00
Doug Bunting cda2c6781c Use stable locale when testing date/time formats
- `CultureReplacerMiddleware` no longer helping `RazorWebSite`
 - regressed with @30d11a8
- `[ReplaceCulture]` sets up the correct culture early enough for consistent formatting
- remove `CultureReplacerMiddleware` from `RazorWebSite`
 - only `Startup` class we have that used this with `RequestLocalizationMiddleware`
 - testing `RequestLocalizationMiddleware`; so remove the confusing extra middleware
2015-06-05 14:25:51 -07:00
Kiran Challa bd035714d0 [Fixes #2648]: Fix registration of MVC services 2015-06-05 09:43:40 -07:00
Kirthi Krishnamraju 30d11a8227 Added LanguageViewLocationExpander into framework and removed it from samples 2015-06-04 14:06:08 -07:00
Doug Bunting ffd1dc1fb0 Add support for generating baseline output files while testing
- baselines include both expected output and design-time line mappings
- controlled by GENERATE_BASELINES
 - assertions related to file content are not checked in this mode
- add design-time test of Basic.cshtml to `MvcRazorHostTest`
- regenerate all files to avoid BOM and blank line noise in future PRs
 - update out-of-date design-time Basic.cs file

nits:
- make a few variable names more consistent
- make `Assembly` fields `static`
- remove unused `_resourcesAssembly` field from `ErrorPageTests`
- remove `ResourceHelpers` which was specific to functional tests
2015-06-01 13:13:39 -07:00
Harsh Gupta 386562c269 Enabling test for 2447, CancellationToken does not gets validated. 2015-06-01 12:41:34 -07:00
Doug Bunting e31eab0391 `ByteArrayModelBinder` should return `null` only when type is not matched
- #2456
- visible behaviours now match MVC 5
- prevent `CollectionModelBinder` from converting no value to `byte[0]`
- prevent `TypeConverterModelBinder` from converting empty value to `byte[] { '\0' }`

nit:
- remove additional delegates `ModelBindingTestHelper.GetOperationBindingContext()` calls
 - a few left despite #2625 cleanup
2015-06-01 12:20:17 -07:00
Doug Bunting 26795bd4b5 Correct test expectations
- use valid `multipart/form-data` content type; include a `boundary`
- correct expectations of `FormCollection` model binder's operation
 - restore tests actually skipped for either of the above reasons
- add more tests with `ModelBindingResult.Model==null` and both `IsModelSet` values

#### Remove test references to Won't Fix bug #2473
- restore #2473 tests; update test expectations
- expect `null` composite results whenever binding fails

#### Restore test skipped due to "#2646"
- that issue does not exist; was likely #2466 or similar fixed bug

#### Rename model binding tests that still mention ReturnsFalse or ReturnsTrue

#### Minor src changes
- remove unused variable and unnecessary nesting in `DefaultControllerActionArgumentBinder`
- remove dangling mention of `[DefaultValue]` in `ComplexModelDtoModelBinder`

#### nits:
- remove empty delegates from some `GetOperationBindingContext` calls; `null` fine
- do some `using` cleanup
- combine two test methods in `KeyValuePairModelBinderTest`
- name a few more arguments
2015-06-01 12:15:39 -07:00
N. Taylor Mullen e0b8532735 Update names and spacing of some missed ChunkTree renames. 2015-05-29 23:07:55 -07:00
N. Taylor Mullen 951a1d0879 Addressed code review comments. 2015-05-29 14:59:07 -07:00
N. Taylor Mullen 94553703a2 React to aspnet/Razor#140
- ICodeTreeCache => IChunkTreeCache
- ModelCodeGenerator => ModelChunkGenerator
- MvcCSharpCodeBuilder => MvcCSharpCodeGenerator
- Updated files that used Razor resources that are now in different namespaces.
- Updated variable names to account for Razor renames.

aspnet/Razor#140
2015-05-29 14:21:35 -07:00
CodingGorilla 70b56f157c Updated the ResponseCacheFilter class to store a reference to the CacheProfile passed into the contructor
Updated the ResponseCacheFilter Duration, Location, NoStore, and VaryByHeader properties to return one of 3 values: the specific setting applied to the instance, the setting supplied by the CachePolicy (from the constructor), or a default value.  The emphasis being not to change the outward function of these properties to consumers, but to defer the evaluation of these properties until the OnActionExecuting method.
Updated the ResponseCacheFilter to check whether a cache duration has been supplied when the NoStore property is false and throw an InvalidOperationException when a duration has not been provided.
Updated ResponseCacheFilterTest to reflect the changes in behavior in the ResponseCacheFilter
Updated the ResponseCacheFilterAttributeTest to reflect the change in the behavior of the ResponseCacheFilter

Added unit tests to ResponseCacheFilterTest.cs to verify that the CachePolicy properties are properly overriden with the properties set directly on the ResponseCacheFilter.

Added functional tests to test the ability to override CacheProfile settings with properties on the ResponseCacheAttribute
2015-05-29 12:28:14 -07:00
Harsh Gupta 4f419eee55 Removing creating ModelValidationNode by default in CompositeModelBinder.
This moves the responsibility of of MVN creation to individual model binders if they want the individual models to be validated.
2015-05-29 09:21:11 -07:00
David Paquette 3fe0490b99 Renamed FileVersion to AppendVersion in tag helpers that support cache busting
FileVersion property renamed to AppendVersion in ImageTagHelper,
LinkTagHelper and ScriptTagHelper.

asp-file-version attribute renamed to asp-append-version.

Resolves issue #2540
2015-05-28 17:56:19 -07:00
Ryan Nowak 6e1226bfe4 Enable tests for #2470
This was very likely fixed as part of
22f1881cc6
2015-05-28 14:57:50 -07:00
Pranav K c040f06dd4 Merge branch 'release' into dev 2015-05-27 16:28:12 -07:00
Pranav K 2212bfa6be Updating to release NuGet.config 2015-05-27 16:28:09 -07:00
Kirthi Krishnamraju d19b265a7f React to aspnet/Configuration #194 2015-05-22 05:54:03 -07:00
Ryan Nowak 144c1d3cf4 Fix #2151 - Part 4 remove [Activate] support from controllers.
This change completely removes [Activate]. In a controller, you should
constructor injection or [FromServices] to access services.

To access context items (ActionContext, ActionBindingContext, root
ViewDataDictionary) you should use the respected attribute class.

We'd like to consider streamlining this further in the future by getting
down to a single injectable context for controllers, but for now this will
have to do.
2015-05-21 22:57:56 -07:00
Ryan Nowak af5322e2ce Part of #2151 - Remove [Activate] from TagHelpers
This change removes [Activate] support from TagHelpers. TagHelpers which
need access to context should use [ViewContext] to have it injected. To
access services, use constructor injection.
2015-05-21 22:57:51 -07:00
Ryan Nowak b393191cff Part of #2151 - Remove [Activate] from ViewComponents
This change removes [Activate] from ViewComponents. Accessing context
should be done through [ViewComponentContext]. Accessing services should
be done though constructor injection.
2015-05-21 22:57:45 -07:00
Ryan Nowak 92dbd8923b Fix #2582 - Remove @inject dependency on [Activate]
Removes usage of [Activate] in razor code generation. Razor will now use
it's own special attribute recognized by the Razor activator.
2015-05-21 22:57:39 -07:00
Ryan Nowak 8f38650d1f Fix #1579 - Bind top-level collections as an empty collection
This change treats 'top-level' collection-type models similarly to
top-level POCO model - namely that they will always be instantiated even
if there's no data to put inside.
2015-05-21 22:46:04 -07:00
Ryan Nowak b64fd7ae39 Fix #2407 - Add back the implicit [Required] for value types
This change adds a [Required] client validator when
ModelMetadata.IsRequired == true. The bulk of the changes here are
mechanical updates to test files.
2015-05-21 17:52:25 -07:00