Commit Graph

1385 Commits

Author SHA1 Message Date
Doug Bunting 0476d53f1d [quick fix] Allow `TestCommon` project to build successfully
- otherwise may fail in VS or when using `BuildV2` from the command line
2015-09-18 16:45:01 -07:00
Kiran Challa b7382dc6c3 Fix Razor test compilation failure 2015-09-17 16:47:07 -07:00
Pranav K 4874677807 Fixing CI build failure 2015-09-17 16:10:36 -07:00
Kiran Challa f3e537ddcb Reacting to TestHost changes 2015-09-17 16:08:23 -07:00
Pranav K 7b433820b1 Changes per PR comments
Reformatting parameter identation
2015-09-17 15:42:58 -07:00
Pranav K a68d9e4cb1 Replace NotNullAttribute with thrown exceptions 2015-09-17 11:56:44 -07:00
Ryan Nowak ef730790d4 Fix tests broken by renames 2015-09-17 07:40:15 -07:00
Ryan Nowak 538cd9c191 Move less-commonly used types out of .Rendering 2015-09-16 23:52:29 -07:00
Ryan Nowak 046cb976b3 Move ActionResult classes back to main namespace 2015-09-16 21:42:31 -07:00
Pranav K 1c4614c219 Avoid allocating strings in DefaultViewLocationCache
Fixes #3135
2015-09-16 17:28:40 -07:00
Pranav K 00075520b4 Razor CompilerCache allocates too much in NormalizePath
Fixes #3035
2015-09-16 16:55:51 -07:00
Ryan Nowak 9a15b54d30 Flow IHtmlContent through to the razor buffer 2015-09-16 16:17:40 -07:00
Ryan Nowak a707311d9e Fix #3087 - use IHtmlContentBuilder in TagBuilder
Improves authoring experience when using TagBuilder by taking advantage of
IHtmlContentBuilder an its extension methods.

TagBuilder.InnerHtml is no longer settable.
2015-09-16 10:03:03 -07:00
Doug Bunting d03a851ab3 Use `MvcTextFixture` as much as possible
- #3066
  - reduce `TestServer` -> `PhysicalFileProvider` -> `FileSystemWatcher` count enough to run with Core CLR on Linux
- remove use of `HttpClient.DefaultRequestHeaders`; any client change affects other tests
- remove use of `RequestBuilder` class; creates a per-test `HttpClient` and requires the `TestServer`
- updated a few expectations because `CommonTestEncoder` does JavaScript a bit differently
  - "JavaScriptEncode[[...]]" -> "JavaScriptStringEncode[[...]]"
- side benefit: xUnit reports functional tests execute for only ~12.4s; was >30s before this change

Infrastructure: Enhance `MvcTestFixture`
- handle `ConfigureServices()` methods that are not `void`
- handle `Configure(IApplicationBuilder, ILoggerFactory)`
- ensure server is initialized with consistent `CurrentCulture` and `CurrentUICulture`
- add `FilteredDefaultAssemblyProviderFixture<TStartup>` and `MvcEncodedTestFixture<TStartup>`
  - add `MvcTextFixture.AddAdditionalServices()` extension point supporting these

- do not expose the `TestServer`; an anti-pattern for tests to manipulate the server
- update class names to match containing files
- use existing `TestApplicationEnvironment`
  - apply some `MvcTestFixture` improvements to the shared `TestApplicationEnvironment` class
- remove unused methods from `TestHelper`

nits:
- touched-up some leftover `_app` &c declarations to be more explicit and minimize `using`s
- moved statements into correct sections of methods in `RoutingTests`
- removed `TestLoggerFactory` and related classes from `TagHelperSampleTest`
2015-09-15 10:18:27 -07:00
Doug Bunting 6459fb0e30 Do not execute no-op tests
- consistently use `TestPlatformHelper` only to skip test cases or change expectations
2015-09-14 15:30:45 -07:00
Pranav K 887ab64d75 Throw an exception if layouts have circular references.
Fixes #3100
2015-09-14 12:57:06 -07:00
Kiran Challa c79469c3b3 React to Cors api changes 2015-09-14 11:21:40 -07:00
N. Taylor Mullen 93735a5be6 React to Razor `TargetElementAttribute` rename.
aspnet/Razor#516
2015-09-13 19:14:30 -07:00
Ryan Nowak 94388a8804 React to BufferedHtmlContent changes 2015-09-13 13:51:53 -07:00
Ajay Bhargav Baaskaran 14bdaf2db6 React to aspnet/Razor#485 2015-09-10 17:24:35 -07:00
N. Taylor Mullen 7cbcbae5e7 Disable test due to mono bug on Mac. 2015-09-10 12:45:31 -07:00
Kiran Challa 62c0eb3f02 React to errorhandler and errorpage extension name changes 2015-09-10 12:30:16 -07:00
Doug Bunting 271e19e61a Remove use of `IsMono` to no-op a test
- use `[ConditionalFact]` or `[ConditionalTheory]` instead
  - in some cases test was already conditional
- move other `IsMono` checks into data sets where possible
  - not reported as skipped but at least not counted as successful

nit: switch from `[ConditionalTheory]` to `[ConditionalFact]` as appropriate
- slightly more efficient since xUnit won't check for data
2015-09-10 11:55:51 -07:00
Doug Bunting 902e42817d Remove duplicate test data 2015-09-10 11:55:44 -07:00
Pranav K d25d9704f7 Using test setup pattern from aspnet/Stress. 2015-09-10 11:42:30 -07:00
Pranav K 2e32ffc004 Use PrecompilationTagHelperTypeResolver to locate TagHelpers during
precompilation.

Fixes #2298
2015-09-09 18:25:11 -07:00
KevinDockx 894574d04e Implement Replace Move and Copy for dynamic objects 2015-09-08 22:09:44 -07:00
Doug Bunting ae57844c6a Make a few arrays explicitly `object[]`
- react to aspnet/aspnet.xunit#13
- latest xUnit bits maintains array types correctly, failing some `Type`-related assertions
  - previous xUnit versions mapped all arrays to `object[]`
  - fix likely part of xunit/xunit@bd6814c
2015-09-08 21:44:32 -07:00
Ryan Nowak a6aaef0d63 Optimize async code in model binders
Optimize the 'no-op' path for our model binders to return a cached task
where possible without going async.
2015-09-08 09:42:34 -07:00
Ryan Nowak 382c9ab86a Test Cleanup: Fix Assert.NotNulls with ModelBindingResult 2015-09-07 17:15:31 -07:00
Ryan Nowak 465b4ce0df Use TelemetrySource 2015-09-06 20:23:05 -07:00
David Fowler 2834b70987 Added frameworks to project.json 2015-09-05 11:03:00 -07:00
Doug Bunting dc4573e484 Get four failing tests working on Linux
- use consistent line endings on all platforms so that hashes and file versions match
  - add another `.gitattribute` file
  - move files to avoid required index recreation in all Linux repos
2015-09-04 14:41:35 -07:00
N. Taylor Mullen ffc863532a Update end column in test after Razor error changes. 2015-09-03 16:53:52 -07:00
N. Taylor Mullen 9169a156e2 Update additional tests to account for new error lengths. 2015-09-03 15:21:00 -07:00
Ryan Nowak 076ce6a8a1 Make ModelBindingResult a struct. 2015-09-03 12:52:50 -07:00
Hao Kung 2b52942faf React to Named Options going away in Auth test 2015-09-02 21:54:10 -07:00
Hao Kung b34dd3b812 Remove options order test cases 2015-09-02 21:41:54 -07:00
Hao Kung 043476192f Disable Options order functional test 2015-09-02 20:53:30 -07:00
Hao Kung 6333c12d77 Fix test websites 2015-09-02 20:11:05 -07:00
Hao Kung 77d9b41e48 Fix merge issue 2015-09-02 17:49:18 -07:00
N. Taylor Mullen 1d865afe7f React to Razor error length change.
aspnet/Razor#386
2015-09-02 15:38:18 -07:00
N. Taylor Mullen 4fb2053f34 Update project.json to have warningsAsErrors accept a bool. 2015-09-02 15:35:13 -07:00
Hao Kung 089abed3ca Delete reintroduced merge file 2015-09-02 15:10:39 -07:00
Hao Kung 3ebdcc5f6f React to options changes 2015-09-02 14:07:06 -07:00
Sebastien Ros dd94d54e1d [Fixes #2929] Moving IsLocalUrl implementation to UrlHelper 2015-09-02 09:30:26 -07:00
Kiran Challa a0e0df87de [Fixes #3016] Disable response buffering in places where the content is already built/available 2015-09-02 09:22:36 -07:00
Ryan Nowak 229724c4ea Reorganize MVC namespaces 2015-09-01 22:28:33 -07:00
Daniel Lo Nigro a2e53e8d1a Explicitly check if URI is file when checking for an absolute URI 2015-09-01 16:33:00 -07:00
Ryan Nowak 98b3f055e1 Change ModelBinding to use a single pass 2015-08-31 11:58:53 -07:00
Pranav K 8a33972c09 RazorViewEngine should cache transformed paths when view cannot be found
Fixes #3034
2015-08-31 10:36:57 -07:00
Kiran Challa e12d44b40a [Fixes #2900] Get rid of manual body-read-state-tracking 2015-08-31 10:34:42 -07:00
Chris R dd737ce946 Use new HttpContext.Features API. 2015-08-31 09:19:14 -07:00
Ryan Nowak 66a7c2e389 Revert "Enabling ViewEngine and Localization tests which use expanders. The issues are fixed in the mono beta 4.0.4."
This reverts commit 9915ea3809.
2015-08-31 08:55:31 -07:00
Ryan Nowak dadee80aa8 Add FieldName to model binding context
Adds a new property, FieldName, to ModelBindingContext. The FieldName is
the name of whatever code-element is being bound, regardless of what
model-prefix is in use.

This is needed for cases like the Header model binder. We always want to
use the property/parameter name and we don't care about model prefixes.
2015-08-31 08:10:03 -07:00
sornaks 9915ea3809 Enabling ViewEngine and Localization tests which use expanders. The issues are fixed in the mono beta 4.0.4. 2015-08-29 16:55:14 -07:00
Chris R f2db0d1483 React to string[] -> StringValues changes. 2015-08-28 16:36:19 -07:00
Pranav K a2d58ba4ea Reacting to globbing changes 2015-08-28 12:50:29 -07:00
Sornakumar Sundararajan e8043f92e5 Issue #2757 - Adding Order to exception filters so that they are executed in the same order irrespective of the platform. 2015-08-28 11:22:11 -07:00
Ajay Bhargav Baaskaran 4fbaea2463 [Fixes #2931] AttributeRoute does not replace existing route values with null 2015-08-28 11:11:03 -07:00
Pranav K c0d4981452 * Avoid lazyily evaluating IRazorCompilationService in
VirtualPathRazorPageFactory
* Cleanup comments on the lifetime of Razor services.
2015-08-27 17:08:18 -07:00
sornaks ddc74e5396 Issue #2727 - Introducing PhysicalFilePathResult and VirtualFilePathResult instead of FilePathResult to handle app and physical file system paths separately. 2015-08-27 10:23:23 -07:00
N. Taylor Mullen cc5c0d6cbe Update `HelperResult` to take in an async func.
- The corresponding Razor change results in `HelperResult`s being rendered with async lambdas.
- This change enables `TagHelper`s and other async code to exist inside of `HelperResult` blocks.
- Added test to validate Templates (they generate `HelperResult`s) can utilize `TagHelper`s correctly.
- Rename `RazorPage`s `RenderBodyDelegate` to `RenderBodyDelegateAsync`.

aspnet/Razor#494
2015-08-25 22:37:17 -07:00
Pranav K 44b45f3b1f Move RazorPreCompileModule.cs to Razor.Precompilation 2015-08-25 14:33:13 -07:00
Doug Bunting 829a5c9046 Expand model types `GenericModelBinder` can handle
- #2993
- use `ClosedGenericMatcher` to handle e.g. non-generic model types implementing requested interfaces
- reduce `IsAssignableFrom()` use since created binders use explicit casts i.e. handle explicit implementations
- also add more integration tests covering various collection key formats, some with validation errors
  - merge a few `[Fact]`s into `[Theory]`s
2015-08-25 09:50:31 -07:00
KevinDockx 054b46c1cc Implement new Remove op & fix value.GetTypê issue in Add op 2015-08-24 12:32:41 -07:00
Doug Bunting bf7e0f141e Add `IsReferenceOrNullableType` and `UnderlyingOrModelType` to `ModelMetadata`
- #2992
- use new properties to replace common helper methods
- still a few `Nullable.GetUnderlyingType()` calls
  - creating `ModelMetadata` or sites lacking `ModelMetadata` access e.g. `ModelBindingHelper.ConvertTo()`
2015-08-24 12:26:50 -07:00
Ajay Bhargav Baaskaran 0beb39ec1c [Fixes #2947] Default ContentType is not set when user specified Response.ContentType exists 2015-08-24 12:17:18 -07:00
Ryan Nowak 1596cd9422 Fix #2527 - Remove FormCollection use
This removes the dependency on Microsoft.AspNet.Http from the Mvc.Core
code. Added the reference back to tests where needed (DefaultHttpContext).
2015-08-24 11:09:30 -07:00
Doug Bunting a045324d3a Do not include compiler-generated names in expression names
- #2890
- add lots of `ExpressionHelper` tests using `IdFor()` and `NameFor()` (which are thin veneers)
2015-08-23 14:22:49 -07:00
Ryan Nowak 4a7ada5f64 Make IValueProvider sync, IValueProviderFactory async 2015-08-21 14:58:55 -07:00
Doug Bunting aaa47d5e0e Workaround https://github.com/aspnet/External/issues/21 in a couple more tests
- led to Travis build failures
2015-08-21 14:12:15 -07:00
Ryan Nowak 6d365e9a32 Make ValueProviderResult a string-ish struct 2015-08-21 11:02:40 -07:00
Doug Bunting 02cc82a055 PR comments commit 2015-08-21 10:45:43 -07:00
Doug Bunting 070be7b656 Make validation in `TryUpdateModelAsync()` consistent with model binding elsewhere
- #2941
- honor `ModelBindingResult.IsModelSet` and use `ModelBindingResult.ValidationNode`
  - enable correct validation of collections or after model binding falls back to the empty prefix
  - code previously matched `Controller.TryValidateModel()`; less context available in that case
2015-08-21 08:17:19 -07:00
Ryan Nowak b5c9d905d9 Fix #2986 - Make ModelMetadata getters null-safe 2015-08-21 07:58:02 -07:00
N. Taylor Mullen c3e2e6fa0a Change Script, Link and Image `TagHelper`s to work better with other `TagHelper`s.
- `ScriptTagHelper`, `LinkTagHelper` and `ImageTagHelper` now default to using `output.Attributes["href|src"]` if it's present when they run. This enables other `TagHelper`s to run prior and add those attributes.
- Added unit tests to validate this behavior.
- Updated `ImageTagHelper` functional test resources. Now that we're always defaulting to `output.Attributes["src"]` for `ImageTagHelper.Src` we're properly copying attributes back into the `output.Attributes` collection in the correct order (isntead of appending to the end).

#2902
2015-08-20 20:41:28 -07:00
Pranav K 05226a4a55 Refactor ICompilerCache to be instantiated via ICompilerCacheProvider
Fixes #2933
2015-08-20 10:54:32 -07:00
N. Taylor Mullen f1eefdb650 Enable `CopyHtmlAttribute` to maintain copied attribute order.
- Updated implementation to do a best guess at copying an attribute back into `TagHelperOutput.Attributes`.
- Updated existing functional and unit tests to account for maintained attribute order.
- Added a set of complex order based unit tests to validate `CopyHtmlAttribute` properly maintains order.

#2639
2015-08-19 14:58:00 -07:00
N. Taylor Mullen b871172dd0 Expose locations of `_ViewImports.cshtml` that affect a given Razor file.
- Added `ChunkTreeResult` to associate inherited chunks with a specific source file.
- Updated existing tests to validate file path.

#2256
2015-08-19 12:12:52 -07:00
David Fowler 91c0081939 Added reference to Microsoft.AspNet.Mvc.Razor so that it's loadable. 2015-08-19 10:24:29 -07:00
Doug Bunting f10a071da3 Preserve `ViewDataDictionary.ModelType` for `Nullable<T>` properties when `Model` is non-`null`
- #2539
- reuse `ModelMetadata` and occasionally `ModelExplorer` when `ModelType` is `Nullable<T>`
2015-08-18 10:33:40 -07:00
Doug Bunting 48f09d0e8d Do not trounce existing property values that are not bound in `TryUpdateModel` scenarios
- #2836

Part 1: Use existing property values when recursing in `MutableObjectModelBinder`
- remove `ComplexModelDTO` because that indirection made fixing this issue more difficult and doesn't add value
  - started with an old closed PR (#2241) which did some of this work
- correct `MutableObjectModelBinderTest` tests that exercised behaviour that can't occur
  - the old `dto.Results` dictionary was never incomplete; nor could it contain `null` values

Part 2: Change `MutableObjectModelBinder` to pass complex property values into binding system
- model binding no longer trounces nodes in the model tree that aren't bound
- create model instances less often in `TryUpdateModel` scenarios
  - refactor `EnsureModel()` to `GetModel()` and use appropriately
- reorder logic in `SetProperty()` and `AddToProperty()` to avoid copying to / from the same collection
  - also cleans up some code duplication

nits:
- clean up `MutableObjectModelBinderTest`
  - fix odd line wrappings and indentation
  - use `nameof()` more
  - use `string.Empty` more
  - simplify a couple of `Returns()` expressions
- make assertions in `TryUpdateModelIntegrationTest` more readable
  - no need to work through `ModelStateDictionary.Keys`
  - also use `Length` instead of `Count()`; test code but we don't need Linq at all in that test class
2015-08-18 09:57:41 -07:00
Ryan Nowak 9d89a8cac3 Homogenize MVC startup code patterns
Use builder APIS for both AddMvc() and AddMvcCore()
Change various API patterns to all use .AddXyz(...) off of one or both of
these builders.
2015-08-16 18:48:24 -07:00
Ajay Bhargav Baaskaran dac75fa56d React to aspnet/Razor#441 change 2015-08-16 18:22:22 -07:00
Ryan Nowak e384938425 Add more event notification data points
Also includes some cleanup of the testing code that we're using with
proxies.
2015-08-16 16:42:58 -07:00
Ryan Nowak 07fabde92a Part 3 of #2776 - revert a6ce9abab1 and add
some more tests.

This change reverts the behavior change from
a6ce9abab1 and adds more tests around the
scneario that was actually broken.

The right behavior is that unconvertable values result in a validation
error. There's no special behavior around value types and required values.
2015-08-16 16:20:44 -07:00
sornaks 27f7f3d437 Issue #2779 - Normalize newlines to "\r\n" instead of "\n". 2015-08-14 17:13:29 -07:00
N. Taylor Mullen e73e73acdd Add `srcset` to list of application relative resolvable URLs.
- Now allow the attribute to exist on `img` and `source` tags.
- Updated existing `UrlResolutionTagHelper` functional test to validate `srcset` attribute.

#2964
2015-08-14 15:58:02 -07:00
Ajay Bhargav Baaskaran 6fe5045c55 React to aspnet/Razor#488 2015-08-14 13:00:39 -07:00
sornaks f2540f9ba1 Making TagBuilder implement IHtmlContent and removing ToHtmlContent.
- Making TagRenderMode a property in TagBuilder.
- Modifying places where TagBuilder is used to suit the new model.
- This reduces space occupied by a normal application by 11.8%.
2015-08-14 10:58:51 -07:00
Pranav K 93d07147b2 ViewViewComponentResult doesn't handle `~/` in view paths correctly
Fixes #2856
2015-08-14 09:53:36 -07:00
Ajay Bhargav Baaskaran 4295a57504 [Fixes #2817] Support client side validation for all numeric types 2015-08-13 17:32:13 -07:00
Ryan Nowak 7aa5967cd4 Fix #2859 - Correct UrlHelper for special tokens
This change restores a link generation behavior from MVC5 and earlier
where 'action' and 'controller' values are special cased-when using
Url.Action(...).

The change is that in-effect 'action' and 'controller' are always included
in the route values given to the routing system. Passing a null value into
the Url.Action(...) method means that the ambient value for that token
should be used explicitly. This means that the 'action' and 'controller'
tokens become sticky, even when something to the lexical left in the URL
(like area) changes.
2015-08-13 17:04:21 -07:00
N. Taylor Mullen 21d96eb16a Enabled `LinkTagHelper` to be written in the void format.
- Updated existing tests to showcase it can be written as just the start tag.
2015-08-13 16:19:30 -07:00
N. Taylor Mullen e1572f98ce Added `InputTagHelper` `TagRenderingMode` modificaitons to react to `output.TagMode`. 2015-08-13 16:19:29 -07:00
N. Taylor Mullen 1b51f6bca6 Enable input, image and url resolution `TagHelper`s to be written as void elements.
- Razor rendering now understands `TagMode` which allows void elements to be rendered.
- Added a `TagStructure.WithoutEnd` bit to `InputTagHelper`, `ImageTagHelper` and `UrlResolutionTagHelper`. This will allow users to write the various elements in the void format. Used the HTML5 spec to determine the elements appropriate.
- Added tests to ensure `TagMode.StartTagOnly` is rendered properly.
- Updated a few functional tests to showcase the void element formats.

aspnet/Razor#450
2015-08-13 16:19:28 -07:00
Ryan Nowak 89a8d0e36c Remove IScopedInstance - use AsyncLocal for ActionContext and
ActionBindingContext

This change replaces IScopedInstance<T> in favor or IActionContextAccessor
and IActionBindingContextAccessor. In the spirit of IHttpContextAccessor,
these are both singletons which use AsyncLocal for storage.

This change allows the invoker factory to be cached which results in some
significant perf gains.
2015-08-13 15:58:29 -07:00
Ajay Bhargav Baaskaran ecfbdf2ae1 React to aspnet/Razor#428 2015-08-13 15:48:16 -07:00
Ryan Nowak a6ce9abab1 Fix #2776 - Add implicit [BindRequired] for value type properties 2015-08-13 15:35:54 -07:00
Pranav K 3558c1d979 Reacting to Logging changes 2015-08-13 11:22:28 -07:00
Pranav K c631d533c4 * Refactoring RazorFileInfoCollectionGenerator to not be instantiated.
* Adding CompilerGeneratedAttribute to generated code.
* Adding unit tests for RazorFileInfoCollectionGenerator.
2015-08-13 11:15:46 -07:00
anurse 1723ef0e97 react to IHttpContextAccessor move 2015-08-12 19:07:24 -07:00
Stephen Halter 43064ef8b6 React to Kestrel rename
aspnet/KestrelHttpServer#11
2015-08-11 16:30:03 -07:00
Ryan Nowak 12ceb6ae1c React to DI namespace change part 3. 2015-08-11 15:44:47 -07:00
Ryan Nowak f7cea9b6d7 React to namespace change in DI. 2015-08-11 14:10:30 -07:00
Doug Bunting 83a559c28c Add `ModelValidationNode`s consistently
- #2633
- do not leave `ModelBindingResult.ValidationNode` as `null` when we hit the `null` `RawValue` special case
 - move two bits of code together to make the special case more obvious
- add `ModelValidationNode` (that suppresses validation) when `HttpRequestMessageModelBinder` is successful
 - also suppress validation of `HttpRequestMEssage` properties
- suppress validation in `CancellationTokenModelBinder`, `FormCollectionModelBinder`, `FormCollectionModelBinder`
- do not create a `ModelValidationNode` when validation fails in `TypeConverterModelBinder`

nits:
- improve some doc comments
- add a quick `HttpRequestMessageModelBinderTest`
2015-08-11 08:30:29 -07:00
Doug Bunting d45e2ee3f5 Handle broader range of collection types in model binding
- #2793
- add `ICollectionModelBinder`, allowing `GenericModelBinder` to call `CreateEmptyCollection()`
- adjust `CollectionModelBinder` and `DictionaryModelBinder` to activate model if default types are incompatible
 - do not create default (empty) top-level collection in fallback case if Model already non-`null`
- change type checks in `GenericModelBinder` to align with `CollectionModelBinder` capabilities
 - add special case for `IEnumerable<T>`
- correct `ModelMetadata` of a few tests that previously did not need that information
2015-08-11 08:26:49 -07:00
sornaks b6a109e2a3 Making DefaultDisplayTemplates and DefaultEditorTemplates use IHtmlContent.
- Making TagBuilder's InnerHtml an IHtmlContent.
- Delay encoding until the content is written.
- Moving BufferedHtmlContent to Common cos it is used in aspnet/Razor also.
- Changing GenerateOption to take in a string and create StringHtmlContent.
- This reduces the space used by around 13%.
2015-08-10 14:55:34 -07:00
N. Taylor Mullen a0da6ec19f Add `AddHtmlAttributeValues` for `TagHelper`s.
- Refactored `WriteAttributeTo` to allow re-use of some of the core attribute writing logic. The refactoring was based on removing the `Begin`/`EndContext` for instrumentation bits which isn't valid in a `TagHelper` attribute scenario.
- Added unit tests to validate attributes are properly added to `TagHelperExecutionContext`.
- Added functional test to validate everything is output as expected with dynamic attributes (encoded and non-encoded).

aspnet/Razor#247
2015-08-10 12:06:02 -07:00
Ryan Nowak ff6cbfd7cf Make saving TempData operate via a filter
This change moves the responsibility for saving TempData into a filter,
which is registered with other View features. This moves TempData into the
ViewFeatures package.

ActionResults which require TempData to be kept use a new marker interface
which is handled by the filter.
2015-08-07 16:53:11 -07:00
Ajay Bhargav Baaskaran b5237b29b5 [Fixes #2896] Made UrlHelper.Content behavior consistent with MVC 5 2015-08-07 16:40:23 -07:00
KevinDockx 94fad918a3 Replace of Add operation (jsonpatch dynamic support) 2015-08-07 16:10:07 -07:00
Pranav K 9d467810b5 Switching to Autofac from NuGet.org 2015-08-07 15:53:53 -07:00
Pranav K 91bbfe949c * Cleaning up unused types in Razor precompilation. 2015-08-07 11:09:11 -07:00
Pranav K dfacd2543b * Remove support for updateable precompiled views.
* Allow precompiled views to be served when source file does not exist in
  file system.
* Cache results for views that do not exist on disk.

Fixes #2462 and fixes #2796.
Partially addresses #2551
2015-08-07 11:08:48 -07:00
Pranav K 982213e9e0 Reacting to DI changes 2015-08-07 10:50:25 -07:00
Ryan Nowak 152e4ef915 Fix #2874 part 2 - Add AddLocalization() overload for MVC localization. 2015-08-07 09:49:08 -07:00
Ajay Bhargav Baaskaran fcad4c5c57 [Fixes #2841] Support comma separated globbed include and exclude pattern in Script and Link tag helpers 2015-08-06 16:55:12 -07:00
Doug Bunting ed4896d1fd Support `[Display(Name = "")]` on enum values
- #2851
2015-08-06 16:07:50 -07:00
Doug Bunting 4a813773d0 Make `CompositeValueProvider` consistent with `IBindingSourceValueProvider` contract
- #2907
- return `null` if `Filter()` finds no matching value provider in collection
- fix lack of defensiveness in model binders' use of `IBindingSourceValueProvider` implementations
- remove test workaround for unusual `CompositeValueProvider` behaviour
2015-08-06 16:05:13 -07:00
sornaks 1aef84b50d Issue #2745 - ViewHierarchyUtility.GetHierarchicalPath does not handle root paths *nix file systems.
Fix: It is not necessary to check for root paths in this place because ViewHierarchyUtility.GetHierarchicalPath is always called with a relative path. Hence removing the check.
2015-08-06 10:31:11 -07:00
Doug Bunting bda850187d Add support for jQuery syntax in form data
- #2705
- add `JQueryFormValueProvider` and `JQueryFormValueProviderFactory`
  - carry some code forward from MVC 5; correct to follow current coding guidelines
- refactor `ReadableStringCollectionValueProviderTest` into abstract `EnumerableValueProviderTest`
  - enables reuse in new `JQueryFormValueProviderTest`
  - also run these tests in `CompositeValueProviderTest`

nits:
- do not create a duplicate `CompositeValueProvider` instance in `Filter()`
- correct garbled sentence in `IBindingSourceValueProvider` doc comments
- simplify `FormValueProviderFactoryTest` (no need for Moq) and correct test name
- correct test class / file names
  - `CompositeValueProviderTests` -> `CompositeValueProviderTest`
  - `FormValueProviderFactoryTests` -> `FormValueProviderFactoryTest`
2015-08-05 10:31:24 -07:00
Troy Dai a7d717d19c Update CoreCLR versions 2015-08-05 09:35:37 -07:00
Pranav K 018e803dc1 Removing Autofac dependency \ tests from ControllersFromServicesWebSite 2015-08-04 15:50:10 -07:00
Pranav K 43e4870fa2 Switching to the official Autofac package. 2015-08-04 15:12:19 -07:00
N. Taylor Mullen 0ef68eefc8 Added default `UrlResolutionTagHelper` to resolve app relative URLs.
- Razor removed the ability to automatically resolve URLs prefixed with `~/`; therefore `ScriptTagHelper`, `LinkTagHelper` and `ImageTagHelper` have changed to take in `IUrlHelper`s and auto-resolve their URL based properties if they start with `~/`.
- Added a catch-all `~/` resolver for non `TagHelper` based HTML elements. Razor used to resolve any attribute value that started with `~/` now the behavior is restricted to attributes that can contain URLs.
- Updated `IUrlHelper` to accept `null` values.
- Added functional tests to validate that URLs resolve correctly.
- Updated `TagHelper` tests to ensure that URLs are resolved via an `IUrlHelper`.

#2807
2015-08-03 16:00:33 -07:00
Ajay Bhargav Baaskaran 2792f10f9a [Fixes #2862] asp-append-version now works with urls containing fragment 2015-08-03 12:06:18 -07:00
Ryan Nowak 68c52adef4 Fix #2837 - Make it easier to get ParameterInfo/PropertyInfo
For a typical configuration, it's now possible to cast a parameter
descriptor to ControllerParameterDescriptor or
ControllerBoundPropertyDescriptor to access the corresponding reflection
type.
2015-08-03 10:53:33 -07:00
N. Taylor Mullen c8df81ef91 React to aspnet/Razor#459. 2015-07-31 15:47:29 -07:00
anurse 0926e0c280 react to DNX renames 2015-07-31 13:48:22 -07:00
Ajay Bhargav Baaskaran e4049c07eb Razor boolean and null attribute special case handled correctly
- Issue #2769
 - Special case is only applied to null and bool value with no surrounding
   whitespace
2015-07-30 10:37:38 -07:00
Doug Bunting 260ac2939e Align `TagHelperOutputExtensionsTest.CaseSensitiveTagHelperAttributeComparer` with Razor.Runtime version
- was missing `Minimized` comparison
2015-07-29 15:44:03 -07:00
Pranav K 7120b2ff92 Removing MvcViewEngineDescriptor and switching to use OptionsSetup to
setup RazorViewEngine.

Fixes #2269
2015-07-29 14:14:07 -07:00
Doug Bunting bb158ec6ee Build break: React to aspnet/Razor@e722f90
- aspnet/Razor@e722f90 removed `HashCodeCombiner` from `public` surface of Razor assembly
- not actually needed since `IReadOnlyTagHelperAttribute` implementations provide a solid `GetHashCode()`
2015-07-29 09:40:14 -07:00
Victor Hurdugaci e96b4d7b94 React to DNX renames 2015-07-29 04:49:49 -07:00
Doug Bunting 6106375306 Add `HttpOkResult`, `HttpOkObjectResult`, and `Ok()` methods in `Controller`
- #2825
- new class names align with existing types such as `HttpNotFoundResult` and `HttpNotFoundObjectResult`
- remove similar types from WebApiCompatShim and use replacements in `ApiController`
 - `NegotiatedContentResult<T>` remains because Core doesn't have an exact replacement

nits:
- add missing periods in some `Controller` doc comments
2015-07-23 18:49:36 -07:00
Ryan Nowak e91ce4560f Fix #2338 - Add ViewComponentResult
Makes it easier to render a view component from inside a controller. This
makes it possible to implement behavior where an ajax request refreshes
part of a page.
2015-07-23 17:52:52 -07:00
Ajay Bhargav Baaskaran 67474d8cbc [Fixes #2382] Use PostElement in Script and Link tag helpers 2015-07-23 10:52:57 -07:00
Andrew Stanton-Nurse 991dff6b9e react to DNX renames 2015-07-21 17:23:06 -07:00
Doug Bunting bb618ac437 React to change in `HttpInfo`
- aspnet/Diagnostics@fea15eb
2015-07-21 17:03:39 -07:00
Doug Bunting b908a7ef6a React to `IAssemptyEnvironment` breaking change 2015-07-20 17:24:13 -07:00
Tugberk Ugurlu 81f8b3edfb removed packExclude from unnecessary places, replaced it with
publishExclude and removed kproj and xproj excludes
2015-07-20 16:49:59 -07:00
Doug Bunting 79a2982441 Add support for model binding dictionaries from `prefix[name]=value` entries
- #1418
- add new fallback binding in `DictionaryModelBinder`
 - similar to MVC 5 approach but more explicit and with better key conversion support
- fix bugs in `PrefixContainer` encountered while adding new tests of #1418 scenarios
 - did not handle entries like "[key]" or "prefix.key[index]" correctly
 - refactor part of `GetKeyFromEmptyPrefix()` into `IndexOfDelimiter()`; share with `GetKeyFromNonEmptyPrefix()`
 - extend `ReadableStringCollectionValueProviderTest` to cover bracketed key segments

nits:
- remove use of "foo", "bar", and "baz" in affected test classes
- `""` -> `string.Empty`
- `vpResult` -> `result`
2015-07-20 16:33:35 -07:00
Doug Bunting 6033679193 Cleanup .xproj files to avoid future churn
- mostly remove useless `<RootNamespace>` elements
2015-07-17 09:07:23 -07:00
Doug Bunting 3056c8ec08 Remove a VS build warning
- was "CS0649: Field is never assigned to, and will always have its default value `null'"
 - visible only in VS builds due to aspnet/dnx#2284

nit: let VS do its thing with Microsoft.AspNet.Mvc.Localization.xproj
2015-07-17 08:50:28 -07:00
Kirthi Krishnamraju d06dcbc996 Merge branch 'release' into dev 2015-07-16 16:09:29 -07:00
Kirthi Krishnamraju d8a523a07f Added Mvc localization project 2015-07-16 15:57:24 -07:00
Ajay Bhargav Baaskaran 8039ebc7d1 Merge branch 'release' into dev 2015-07-16 15:55:15 -07:00
Ajay Bhargav Baaskaran 92f3e21fe6 Fix: Metadata ignored for non model-specific EditorTemplate
Issue - #2778
2015-07-16 15:48:01 -07:00