Commit Graph

250 Commits

Author SHA1 Message Date
Bruno 124064ef47 Add option to limit domains on AddRedirectToWww (#9676) 2019-05-14 08:33:03 -07:00
Pranav K 3d79b9aa58
Add some caching to CORS (#9972)
* Add some caching to CORS
2019-05-13 11:52:16 -07:00
James Newton-King d5207af367
Improve TestServer support for Response.StartAsync (#10189) 2019-05-13 22:38:26 +12:00
Pranav K 8a3fdb4b21
Changes per PR comments 2019-05-11 06:22:19 -07:00
Pranav K 20982a947d
Add some caching to CORS 2019-05-11 05:43:44 -07:00
Nate McMaster b744814f06
Enhancements to Helix testing (#10007)
* Add Windows 7 and 8.1 testing on Helix
* Install SQL Server on-demand in Helix test queues
* Only install mssql on Windows runs
* Use exit /b
* Add targets to better support running helix locally
* Set maxretrycount to 2
* Handle IIS issues on win7/win8
* Make HelixPreCommand's fail the workitem
* Add a pre-generated test cert of IIS Express
* Update helix doc and ignore netsh script failures
* Fix bug in detecting Windows queues and disable Win 7 until we have queues ready
* Fix HttpSys functional tests on Helix
2019-05-10 15:04:16 -07:00
Ryan Nowak 0b590ff46f Fix #6764 EndpointConventionBuilder API review 2019-05-09 19:38:43 -07:00
Ryan Nowak 24784d0681 Fix #10066 2019-05-09 13:44:16 -07:00
Nate McMaster 3dbbb2994c
Upgrade yarn and cleanup npm commands (#10054)
* Add yarn.lock file for NodeServices
* Remove references to 'npm install' (causes double-download of node modules) and replace npm commands in package.json with yarn for consistency
* Upgrade yarn to 1.15.2
2019-05-08 15:07:25 -07:00
Ryan Nowak e401f35b45
Header propagation sample and UX improvements (#9793)
Creating a sample for the header propagation package and some various
misc UX improvements based on building the sample.

A small list:
- allow duplicate inbound names
- de-dupe based on outbound names
- add sugar for configuration
- simplify pattern for transforming values
- add error message for missing middleware

Also a few small perf things.

I started this out by wanting to remove the following from the
configuration pattern:
```C#
options.Headers.Add("X-TraceId", null);
```

This pattern with null is undiscoverable, but we didn't provide
something simpler. The most common case was to add a custom collection
type so we can define sugar methods.

The next realization is that in practical case (dist tracing sample) you
either way to *key* off of the same inbound header twice, or you don't
have an inbound header at all, and you will synthesize the value every
time. This means that the way we're treating inbound header names is a
bit wrong. We don't want inbound header names to be unique, we want
*outbound header names to be unique*.

Next, I want to consolidate DefaultValue and ValueFactory. The problems
I saw with this:
- DefaultValue is a trap. It's rare to use a static value.
- ValueFactory really wants the header name *and* value

I think what's there now is much more terse to work with.
2019-05-07 11:07:42 -07:00
Ben Adams bbf7ed2907 Lazy create ExceptionHandlerMiddleware statemachine (#9549) 2019-05-06 15:15:48 -07:00
Ben Adams 617bc1ac02 Reduce StaticFileContext allocation/struct copy (#9815) 2019-05-03 11:55:37 -07:00
Nate McMaster 8863ebfda1
Add --mutex option to yarn commands (#9919)
Attempt to improve reliability of running yarn commands. Our project structure might cause yarn to be launched multiple times. According to yarn docs, this option should avoid conflicts between multiple instances of yarn

https://yarnpkg.com/en/docs/cli/#toc-concurrency-and-mutex
2019-05-02 17:45:55 -07:00
James Newton-King da66edc8ff
Change IEndpointConventionBuilder extension methods to use generic argument (#8906) 2019-05-02 07:25:54 +12:00
Nate McMaster ae8e96f154
Remove API check baselines and related project settings (#9846) 2019-04-30 14:58:13 -07:00
Nate McMaster 0eb1fd7b50
Remove unnecessary restore feeds and update yarn.lock file (#9845) 2019-04-30 08:57:49 -07:00
Andrew Stanton-Nurse fe3dfe627b
Be more defensive in HtmlDirectoryFormatter (#9755)
Fixes aspnet/AspNetCore-Internal#2245

Our tests were flaking out due to this possible race where the directory browser middleware enumerates the directory but a file is deleted while we're formatting the response. This change just catches the FNF/DNF exceptions and suppresses the file from the directory listing
2019-04-29 11:25:26 -07:00
Ryan Brandenburg 1f7b5855f7
Check browser console errors (#9298)
Check browser console errors
2019-04-25 10:02:22 -07:00
dotnet-maestro[bot] 8eb2e8baec
[master] Update dependencies from dotnet/arcade (#9715)
* Update dependencies from https://github.com/dotnet/arcade build 20190423.2

- Microsoft.DotNet.GenAPI - 1.0.0-beta.19223.2

* Adjust to GenApi change in `enum` ordering
- was sorted by name, now by value
2019-04-24 19:21:37 +00:00
Ben Adams 19ce372887 Cache some Headers lookups (#9618) 2019-04-21 20:37:56 -07:00
Ben Adams 507a765dfb Lazy create StaticFileMiddleware statemachine (#9507) 2019-04-18 14:44:00 -07:00
Ben Adams 8fcadf72cd Allow headers to match on ReferenceEquals before OrdinalIgnoreCase (#9341) 2019-04-18 12:00:01 -07:00
David Fowler a8b67a2b98
Rename variable (#9461) 2019-04-17 20:56:06 -07:00
Pranav K 004ac25983
Remove AddRazorSupportForMvc from MVC and Blazor projects (#9446)
Fixes https://github.com/aspnet/AspNetCore/issues/9126
Fixes https://github.com/aspnet/AspNetCore/issues/9183
Fixes https://github.com/aspnet/AspNetCore/issues/9207
2019-04-16 20:46:51 -07:00
David Fowler 48f0a76ea9
Support plain text exception formatting (#9342)
- If there's no Accept: text/html then print the exception.ToString as plaintext
2019-04-16 18:34:07 -07:00
Pranav K e2477706b6
Always set flag in CorsMiddleware once it executes (#9440)
Fixes https://github.com/aspnet/AspNetCore/issues/9348
2019-04-16 16:28:27 -07:00
John Luo c2ee82b49e
Move ResponseCaching pubternal types to internal (#9392) 2019-04-16 15:14:59 -07:00
Alessio Franceschelli 19e0030710 HeaderPropagation Middleware: handle content headers 2019-04-16 08:47:29 -07:00
Javier Calvarro Nelson 5889aea06c
Enable custom restore of NPM dependencies for csproj files
Enables custom restore of NPM dependencies for csproj files that require it.
2019-04-14 15:02:37 +02:00
Pranav K ae34697797 Fix #9041 - Complain if auth hasn't been set up correctly (#9181) 2019-04-11 10:36:21 -07:00
Pranav K b93bc433db
Make AuthorizeFilter work in endpoint routing (#9099)
* Make AuthorizeFilter work in endpoint routing

Fixes https://github.com/aspnet/AspNetCore/issues/8387
2019-04-08 06:03:34 -07:00
Doug Bunting 1b50085835
Chain coherent dependencies up through Extensions to EF Core packages (#8877)
* Chain coherent dependencies up through Extensions to EF Core packages
- should reduce incoherent PRs we get from `darc`
- react to AspNetCore-Tooling breaking changes
  - use C# Preview version in Blazor integration tests
    - update `EnsureOptions_ConfiguresDefaultParseOptions` test to match new C# version default
  - react to new newline encoding behavior; thanx @ajaybhargavb!
  - update product code and tests to use new GetItem API; thanx @NTaylorMullen!
    - RazorProjectFileSystem breaking change
    - update ref assemblies
- react to EF Core breaking changes
  - react to EF Core method rename
  - react to aspnet/EntityFrameworkCore@ccfc5edbc7
  - react to aspnet/EntityFrameworkCore@6cb41531df breaking change
    - disable new analyzer in `ScratchDatabaseFixture`
- skip `MvcTemplate_NoAuthImplAsync(...)` test for F#
  - #8996
- exclude some runtime assemblies from crossgen; thanx @BrennanConroy!
- add direct references to Mvc in AzureAD samples
  - unclear why the reference is no longer pulled in transitively

* Run `darc` to grab the latest
- CoreFx packages with version 4.6.0-preview4.19204.1 to ensure coherency
- core-setup packages with version 3.0.0-preview4-27604-05 to ensure coherency
- Extensions packages with verisn 3.0.0-preview4.19204.2 to ensure coherency
- EntityFrameworkCore packages with version 3.0.0-preview4.19204.7 from build 20190404.7
- AspNetCore-Tooling packages with version 3.0.0-preview4.19204.2 from build 20190404.2
2019-04-05 10:54:04 -07:00
Javier Calvarro Nelson 98d8b9ab4a
[Infrastructure] Retry yarn install on failure (#9068)
* [Infrastructure] Retry yarn install on failure
2019-04-04 20:39:52 +02:00
Ryan Brandenburg fefffd7751
Test all links in templates (#8628)
Improve templating tests
2019-04-04 11:31:24 -07:00
Andrei Amialchenia 8274776efa Test name fixed (#8994)
Fixed #8922
2019-04-02 13:58:06 -07:00
Javier Calvarro Nelson 8499a27c7f
[Components] Relayer + Robust reconnect (#8911)
* [MVC][Components] Prerendering + Robust reconnect
* Relayers prerendering support on a separate package on top of MVC and
  components.
* Implements robust reconects with acknowledgements from the client.
* Improves interactive prerendering with the ability to reconnect to
  prerendered components.
* Removes the need to register components statically when prerendering
  them.
* Removes the need of using an element selector when prerendering an
  interactive component.
* Updates the templates to use the new fallback routing pattern and
  reenables the components test.
* Adds eslint to the Typescript project to help maintain a consistent
  style.
* Adds logging to support better debugging based on the pattern used by
  signalr.
* Fixes exception handling on the server to always report exceptions correctly to the client.
2019-04-02 19:17:03 +02:00
Kirill Rakhman 3cc3ab00c9 Reduce boxing in RedirectRule.cs (#8988) 2019-04-02 10:04:07 -07:00
David Fowler f4c61de490
Initial design for exception page filters (#8958)
- This change introduces the concept of an IDeveloperPageException filter that runs whenever the developer exception page has encountered an error. It follows the middleware pattern (chain of resposibility) which allows short circuiting or decorating the default logic.
- Added tests
2019-04-02 10:02:34 -07:00
Ryan Nowak 285110de91 Add missing ref-assembly for header propagation
I think this was missed because the PR predates ref assemblies :)
2019-03-30 11:50:34 -07:00
Alessio Franceschelli f28cf2bbc8 HeaderPropagation: propagate incoming request headers to outgoing HTTP requests (#7921)
* Ported HeaderPropagation from aspnet/Extensions

* Introduced Middleware

* Refactored middleware logic

* Refactored builder extensions

* Copyright notice

* Test for friendly exception on Builder

* Fixed header name selection when no output name specified

* Set comparer for the dictionary of headers

* Refactored configuration as Dictionary

* Renamed state objects

* renamed OutboundHeaderName in configuration

* Changed DefaultValuesGenerator to ValueFactory

* Missing docs

* Removed AlwaysAdd and added tests for null entry in configuration

* Improved docs

* Update src/Middleware/HeaderPropagation/src/DependencyInjection/HeaderPropagationExtensions.cs

Co-Authored-By: alefranz <alessio@franceschelli.me>

* Moved dependency injection extensions

* DI: reused ServiceCollection extension in the HttpClientBuilder one

* Moved service registration

* Update src/Middleware/HeaderPropagation/src/HeaderPropagationEntry.cs

Co-Authored-By: alefranz <alessio@franceschelli.me>

* more docs

* Improved docs

* Update src/Middleware/HeaderPropagation/src/HeaderPropagationValues.cs

Co-Authored-By: alefranz <alessio@franceschelli.me>

* Fixed build

* Update eng/SharedFramework.Local.props

Co-Authored-By: alefranz <alessio@franceschelli.me>

* Updated tests for null config

* Reversed condition on HeaderPropagationMessageHandler as suggested

* Added docs for HeaderPropagationMessageHandler

* Changed proj to ship package to NuGet
2019-03-29 12:00:46 -07:00
Ryan Nowak 658b37d2bd
Make UseEndpoints a thing (#8765)
* Make endpoint middleware explicit

This change makes the endpoint middleware explicit again, and updates
all of the templates.

The other change here is make UseEndpoints be the place where you
register endpoints. This is vital because it puts your code visually at
the point of the pipeline where it executes.

Lastly, I removed support for UseMvc with endpoint routing. This is
causing issues for some security features, and we're moving in the
direction of trying to make the middleware heavy implementation required
in 3.0. There are some issues we won't be able to fix in MVC if we can't
unambiguously know if UseMvc was used or the middleware.
2019-03-28 15:41:11 -07:00
Ryan Brandenburg 70cd5f5f9f
Mark tests flaky instead of skipped (#8727)
Mark tests flaky instead of skipped
2019-03-26 09:51:37 -07:00
Pranav K 9a35bbea03
Experience for Razor SDK (#8731)
* Experience for Razor SDK

* Remove Components.Build
* Update MVC projects and templates to use AddRazorSupportForMvc
* Update components templates to use .razor extension

Fixes https://github.com/aspnet/AspNetCore/issues/6392

* Update dependencies from https://github.com/aspnet/AspNetCore-Tooling build 20190321.3

- Microsoft.NET.Sdk.Razor - 3.0.0-preview4.19171.3
- Microsoft.CodeAnalysis.Razor - 3.0.0-preview4.19171.3
- Microsoft.AspNetCore.Razor.Language - 3.0.0-preview4.19171.3
- Microsoft.AspNetCore.Mvc.Razor.Extensions - 3.0.0-preview4.19171.3

* Update dependencies from https://github.com/dotnet/core-setup build 20190322.01

- Microsoft.NETCore.App - 3.0.0-preview4-27522-01

Dependency coherency updates

- Microsoft.Bcl.Json.Sources - 4.6.0-preview4.19164.7 (parent: Microsoft.NETCore.App)
- Microsoft.CSharp - 4.6.0-preview4.19164.7 (parent: Microsoft.NETCore.App)
- Microsoft.Win32.Registry - 4.6.0-preview4.19164.7 (parent: Microsoft.NETCore.App)
- System.ComponentModel.Annotations - 4.6.0-preview4.19164.7 (parent: Microsoft.NETCore.App)
- System.Data.SqlClient - 4.7.0-preview4.19164.7 (parent: Microsoft.NETCore.App)
- System.Diagnostics.EventLog - 4.6.0-preview4.19164.7 (parent: Microsoft.NETCore.App)
- System.IO.Pipelines - 4.6.0-preview4.19164.7 (parent: Microsoft.NETCore.App)
- System.Net.Http.WinHttpHandler - 4.6.0-preview4.19164.7 (parent: Microsoft.NETCore.App)
- System.Net.WebSockets.WebSocketProtocol - 4.6.0-preview4.19164.7 (parent: Microsoft.NETCore.App)
- System.Reflection.Metadata - 1.7.0-preview4.19164.7 (parent: Microsoft.NETCore.App)
- System.Runtime.CompilerServices.Unsafe - 4.6.0-preview4.19164.7 (parent: Microsoft.NETCore.App)
- System.Security.Cryptography.Cng - 4.6.0-preview4.19164.7 (parent: Microsoft.NETCore.App)
- System.Security.Cryptography.Pkcs - 4.6.0-preview4.19164.7 (parent: Microsoft.NETCore.App)
- System.Security.Cryptography.Xml - 4.6.0-preview4.19164.7 (parent: Microsoft.NETCore.App)
- System.Security.Permissions - 4.6.0-preview4.19164.7 (parent: Microsoft.NETCore.App)
- System.Security.Principal.Windows - 4.6.0-preview4.19164.7 (parent: Microsoft.NETCore.App)
- System.ServiceProcess.ServiceController - 4.6.0-preview4.19164.7 (parent: Microsoft.NETCore.App)
- System.Text.Encodings.Web - 4.6.0-preview4.19164.7 (parent: Microsoft.NETCore.App)
- System.Threading.Channels - 4.6.0-preview4.19164.7 (parent: Microsoft.NETCore.App)
- Microsoft.Extensions.DependencyModel - 3.0.0-preview4-27522-01 (parent: Microsoft.NETCore.App)
- Microsoft.NETCore.Platforms - 3.0.0-preview4.19164.7 (parent: Microsoft.NETCore.App)

* Update dependencies from https://github.com/aspnet/EntityFrameworkCore build 20190321.4

- Microsoft.EntityFrameworkCore.Tools - 3.0.0-preview4.19171.4
- Microsoft.EntityFrameworkCore.SqlServer - 3.0.0-preview4.19171.4
- dotnet-ef - 3.0.0-preview4.19171.4
- Microsoft.EntityFrameworkCore - 3.0.0-preview4.19171.4
- Microsoft.EntityFrameworkCore.InMemory - 3.0.0-preview4.19171.4
- Microsoft.EntityFrameworkCore.Relational - 3.0.0-preview4.19171.4
- Microsoft.EntityFrameworkCore.Sqlite - 3.0.0-preview4.19171.4

* Update dependencies from https://github.com/aspnet/Extensions build 20190321.4

- Mono.WebAssembly.Interop - 3.0.0-preview4.19171.4
- Microsoft.JSInterop - 3.0.0-preview4.19171.4
- Microsoft.Internal.Extensions.Refs - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Diagnostics.HealthChecks - 3.0.0-preview4.19171.4
- Microsoft.Extensions.DiagnosticAdapter - 3.0.0-preview4.19171.4
- Microsoft.Extensions.DependencyInjection.Abstractions - 3.0.0-preview4.19171.4
- Microsoft.Extensions.DependencyInjection - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Configuration.Xml - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Configuration.UserSecrets - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Configuration.KeyPerFile - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Configuration.Json - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Configuration.Ini - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Configuration.FileExtensions - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Configuration.EnvironmentVariables - 3.0.0-preview4.19171.4
- Microsoft.Extensions.FileProviders.Abstractions - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Configuration.CommandLine - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Configuration.AzureKeyVault - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Configuration.Abstractions - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Configuration - 3.0.0-preview4.19171.4
- Microsoft.Extensions.CommandLineUtils.Sources - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Caching.StackExchangeRedis - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Caching.SqlServer - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Caching.Memory - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Caching.Abstractions - 3.0.0-preview4.19171.4
- Microsoft.Extensions.ActivatorUtilities.Sources - 3.0.0-preview4.19171.4
- Microsoft.AspNetCore.Testing - 3.0.0-preview4.19171.4
- Microsoft.AspNetCore.BenchmarkRunner.Sources - 3.0.0-preview4.19171.4
- Microsoft.AspNetCore.Analyzer.Testing - 3.0.0-preview4.19171.4
- Internal.AspNetCore.Analyzers - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Configuration.Binder - 3.0.0-preview4.19171.4
- Microsoft.Extensions.FileProviders.Composite - 3.0.0-preview4.19171.4
- Microsoft.Extensions.FileProviders.Embedded - 3.0.0-preview4.19171.4
- Microsoft.Extensions.FileProviders.Physical - 3.0.0-preview4.19171.4
- Microsoft.Extensions.WebEncoders - 3.0.0-preview4.19171.4
- Microsoft.Extensions.ValueStopwatch.Sources - 3.0.0-preview4.19171.4
- Microsoft.Extensions.TypeNameHelper.Sources - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Primitives - 3.0.0-preview4.19171.4
- Microsoft.Extensions.ParameterDefaultValue.Sources - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Options.DataAnnotations - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Options.ConfigurationExtensions - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Options - 3.0.0-preview4.19171.4
- Microsoft.Extensions.ObjectPool - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Logging.TraceSource - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Logging.Testing - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Logging.EventSource - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Logging.Debug - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Logging.Console - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Logging.Configuration - 3.0.0-preview4.19171.4
- Microsoft.Extensions.FileSystemGlobbing - 3.0.0-preview4.19171.4
- Microsoft.Extensions.HashCodeCombiner.Sources - 3.0.0-preview4.19171.4
- Microsoft.Extensions.HostFactoryResolver.Sources - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Hosting - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Hosting.Abstractions - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Http - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Localization - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Localization.Abstractions - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Logging - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Logging.Abstractions - 3.0.0-preview4.19171.4
- Microsoft.Extensions.Logging.AzureAppServices - 3.0.0-preview4.19171.4

* Grab latest from other aspnet repos
- brings everything into coherence
- aspnet/Extensions packages with version 3.0.0-preview4.19172.1 from build 20190322.1
- aspnet/AspNetCore-Tooling packages with version 3.0.0-preview4.19172.2 from build 20190322.2
- aspnet/EntityFrameworkCore packages with version 3.0.0-preview4.19172.3 from build 20190322.3
2019-03-22 17:33:20 -07:00
Javier Calvarro Nelson 9f1a978230
[Infrastructure improvements] (#8275)
* Improved selenium start and tear down
  * Selenium is set up and torn down in an assembly fixture.
  * Selenium is initialized lazily and in a non-blocking way.
  * Selenium processes are tracked as part of the build and their pids
    written to a file on disk for cleanup in the event of unexpected
    termination of the test process.
  * Browser fixture retries with linear backoff to create a remote
    driver. Under heavy load (like when we are doing a simultaneous NPM
    restore) the selenium server can become unresponsive so we retry
    three times, with a longer comand timeout allowance each time up to
    a max of 3 minutes.
* Moved test project setup to build time instead of runtime.
  * Added target PrepareForTest to create the required files for testing
    * The template creation folder.
    * The template props file to use our built packages.
    * The folder for the custom hive.
  * Added assembly metadata attributes to find all the data we need to
    run the tests.
    * Path to the artifacts shipping packages folder.
    * Path to the artifacts non-shipping packages folder.
    * Path to the test templates creation folder.
    * Path to use for the custom templating hive used in tests.
  * Proper cleanup as part of the build
    * Remove the test templates creation folder.
    * Remove the test packages restore path.
    * Recreate the test templates creation folder.
    * Recreate the test packages restore path.
  * Generated Directory.Build.Props and Directory.Build.Targets in the
    test templates creation folder.
  * Cleaned up potentially stale templatetestsprops.
* Improved test flows
  * Initialization is done lazily and asynchronously.
    * Selenium
    * Browser fixture
    * Template initialization.
  * Flattened test flows to avoid assertions inside deep callstacks.
    * All assertions happen at the test level with improved error messages.
      * With the exception of the migrations assertions.
    * Assertions contain information about which step failed, for what
      project and what failure details.
  * Broke down tests to perform individual steps instead of mixing build
    and publish.
    * Publish project.
    * Build project. (Debug)
    * Run built project.
    * Run published project.
  * Concentrated build logic into the Project class.
    * Context between the different steps of a test is maintained in
      this class.
    * All operations that require coordination are performed within this
      class.
      * There is a lock for dotnet and a lock for nodejs. When building
        SPAs we acquire the nodejs lock to correctly prevent multiple
        runs of nodejs in parallel.

[ApiAuthorization template cleanups]
  * Fix preview3 issues with breaking changes on Entity framework by
    manually configuring the model in ApiAuthorizationDbContext.
  * Add app.db to the project file when using local db.
  * Fix linting errors on angular template.
  * Fix react tests
  * Add tests to cover new auth options in the SPA templates.
2019-03-20 08:44:20 +01:00
Doug Bunting bcead68f0c React to EntityFrameworkCore and AspNetCore-Tooling breaking changes
- avoid `[Obsolete]` EF Core method
- mirror recent `RazorIntegrationTestBase` changes in this repo
2019-03-18 19:36:09 -07:00
Ryan Nowak 30d0afca05 Remove DisplayName overload from health checks
The builder now provides this directly.
2019-03-13 20:12:53 -07:00
Ryan Nowak e78a6521b9 Make naming of IEndpointRouteBuilderConsistent across usages. 2019-03-13 20:12:53 -07:00
Ryan Nowak d329cca17d Change APIs to internal in Diagnostics
These types are still used, but we don't want them to be public.
2019-03-13 13:15:06 -07:00
James Newton-King 21b20afb1d
Add friendly error message for when healthchecks services not registered (#8146) 2019-03-12 11:32:58 -07:00
Chris Baudin 77948feeba Update reference assemblies for health checks. 2019-03-11 20:56:08 -07:00
Chris Baudin 484978fe59 Update the health check endpoint route builder extensions to make the endpoint display name configurable. (#8359) 2019-03-11 20:56:08 -07:00
Pranav K 41e6fc8ab0 Use ApplicationPartFactory when adding application parts
Fixes https://github.com/aspnet/AspNetCore/issues/8288
2019-03-07 13:38:31 -08:00
Chris Ross 6db129a588
Support conditional compression #6925 (#8239) 2019-03-07 11:09:48 -08:00
Andrew Stanton-Nurse 7fb3d57f54
Skip some more flaky tests (#8194) 2019-03-07 09:40:26 -08:00
Ryan Nowak 8a46e8cd93 Update SpaDefaultPageMiddleware for endpoints
This change makes the SpaDefaultPageMiddleware noop when an endpoint has
been chosen. This is a problem today because this usually runs after
routing, but its always terminal.

So even if endpoint routing selected something, this would still serve
the default file. We're adding more things that fill this niche, but it
seems like a good idea to fix the existing stuff.
2019-03-06 09:48:07 -08:00
Ryan Nowak 089f64c528 Add fallback routing to file
This is a new routing feature that integrates static files to serve a
static file when routing doesn't match anything else.

This is a scenario that's covered by SPA services today, but given the
improvements to routing it makes much more sense to move lower in the
stack.
2019-03-06 09:48:07 -08:00
Ryan Nowak 7e63e2da43 Make StaticFiles Noop for middleware
Teaches all of the static files middleware (incl default files,
directory browser) to noop when an endpoint is selected. This is
desirable so you can place them after routing if you want with no ill
effect.
2019-03-06 09:48:07 -08:00
Chris Ross def25cb3de
Document the change policy for FileExtensionContentTypeProvider #2454 (#8213) 2019-03-05 13:50:48 -08:00
BrennanConroy 58ad7b7550
Fix build flakiness (#8211) 2019-03-05 12:59:21 -08:00
Ryan Brandenburg 414d8a514f
Add missing doc comments (#8035) 2019-03-05 10:01:20 -08:00
Chris Ross 93b195e566
Change SameSite default to None #2675 #4661 (#8043) 2019-03-01 16:22:12 -08:00
Hao Kung 3b16c69786 Skip NodeServices tests on helix (#8045)
NodeJs not installed on helix boxes by default currently

https://github.com/aspnet/AspNetCore/issues/8044 tracking this skip
2019-03-01 09:37:43 -08:00
Steve Sanderson 18c1b994df
Basic integration tests for NodeServices (#8029) 2019-02-28 17:58:57 +00:00
Nate McMaster e02e047dcb
Merge branch 'master' into merge/release/3.0-preview3-to-master 2019-02-24 09:31:17 -08:00
Nate McMaster 1b27c9905c
Update dependencies and react to changes (#7844)
* Add workaround for dotnet/sdk#2976
* Add new restore sources
* Update BAR manifest to point to  https://dotnetfeed.blob.core.windows.net/aspnet-aspnetcore/index.json
* Obsolete WithCulture
* Add retries to dockerbuild.sh
* Ensure each test run gets a unique in-memory database
2019-02-22 19:09:08 -08:00
Nate McMaster f0ef784783 Run yarn import to convert package-lock.json to yarn.lock 2019-02-22 13:30:19 -08:00
Nate McMaster 5be7d30231 Replace npm commands with yarn 2019-02-22 13:30:19 -08:00
Pavel Krymets 9355c7c1a5
Add reference assemblies support (#7764) 2019-02-21 14:33:35 -08:00
Pranav K 51e2bea403
Throw if CORS policy is configured to allow credentials and any origin (#7751)
* Throw if CORS policy is configured to allow credentials and any origin

Fixes https://github.com/aspnet/AspNetCore/issues/3106
2019-02-21 09:06:00 -08:00
Pranav K 5418698f39 Disable CORS functional tests from running in parallel
Fixes https://github.com/aspnet/AspNetCore-Internal/issues/1845
2019-02-21 06:20:11 -08:00
Nate McMaster 9a2db43848
Follow-up to VS2019 conversion (#7753)
* Set VS version in file to 16.0.0.0
* Fix for restore failure on Microsoft.AspNetCore.App.Runtime.csproj
2019-02-20 11:02:38 -08:00
Nate McMaster 85ae18c723
Make Visual Studio 2019 a prerequisite to building this repo (#7005)
Changes:

* Make Visual Studio 2019 a prerequisite for building this repo
* Update .sln files
* Update Windows SDK to 17134
* Update developer docs
* Disable ANCM tests
* Update to .NET Core SDK 3.0 Preview 2
* Use Microsoft.NET.Sdk.Razor as a package consistently accross the repo
* React to changes in metadata from Microsoft.NETCore.App
* React to changes in .NET Core SDK
* Attempt to workaround CodeCheck.ps1 failure which doesn't repro locally or on different agents. Possibly due to differences in the version of the PowerShell task?
* Remove dead YML file
* Rename usages of win7-{x64,x86} to win-{x64,x86}
* Update KoreBuild to 3.0.0-build-20190219.1
2019-02-20 09:53:53 -08:00
Chris Ross 4e44025a52
Replace IHostingEnvironment with IWebHostEnvironment (#7725) 2019-02-19 21:11:52 -08:00
Doug Bunting 3e0c75187c
Place limits on model binding collection size and recursion depth (#7214)
- #7052
- add MvcOptions.MaxModelBindingCollectionSize` and `MvcOptions.MaxModelBindingRecursionDepth`

nits:
- update syntax of a few `Resources.Designer.cs` files (I ran `/t:resx` on Mvc.sln)
- take VS suggestions in a few test classes
2019-02-19 15:17:56 -08:00
Nate McMaster 338de4710a
Automatically set 'PrivateAssets=All' for .Sources references (#7539)
When a `<Reference>` is named `*.Sources`, set PrivateAssets=All (exclude from generated nuspec) and IncludeAssets=ContentFiles (only consume content files, not .dll's)
2019-02-13 14:31:15 -08:00
Nate McMaster 3fd8a97af2
Add targets to generate the list of shared framework assemblies from project property (#7510)
Changes:
* Add support for a property, `IsAspNetCoreApp`, in the .csproj file of assemblies which are part of the shared framework. 
* Remove unused dependencies
* Remove reference which have become part of 'netcoreapp3.0'
2019-02-12 23:00:19 -08:00
Ryan Nowak c5d8f8c34e Update CORS package.json and friends
This is what NPM wants to do - why argue?
2019-02-11 16:19:27 -08:00
Javier Calvarro Nelson dbf746d210
[Antiforgery][Components][CORS] Remove obsolete APIs (#7459)
#7325
#7319
#7324
2019-02-11 10:38:31 -08:00
Justin Kotalik 35b99e44ce
Expose HttpResponse PipeWriter in Kestrel (#7110) 2019-02-08 17:24:26 -08:00
Hao Kung c9499e14e4
Run helix tests on master (#6728) 2019-02-07 09:20:08 -08:00
Ryan Brandenburg 28b56587b1
Handle PermanentRedirects in PrerenderTagHelpers (#7179)
Handle PermanentRedirects in PrerenderTagHelpers
2019-02-05 09:22:40 -08:00
Pranav K 00d58e84a2
Merge remote-tracking branch 'origin/release/2.2' 2019-02-01 13:41:59 -08:00
Pranav K c1a756c575 Skip test on OSX until this can be further diagnosed 2019-02-01 13:34:39 -08:00
Gérald Barré f1b24ccb92 Replace unsafe code with string.Create for hex generation (#6784) 2019-02-01 10:06:20 -08:00
Pranav K 51ec523d9e Attempt to install chromium as part of restore instead of running the CORS tests
One more go at https://github.com/aspnet/AspNetCore-Internal/issues/1619
2019-01-31 16:32:35 -08:00
BrennanConroy 25869c4690
Remove Obsolete WebSocketMiddleware constructor (#7163) 2019-01-31 16:11:50 -08:00
Nate McMaster 6081fec894
Add new build.cmd/sh options for suppressing restore, NodeJS, setting target arch and OS name, and more (#7137)
Add new command line parameters for working with the project:

* `-NoBuild`, `-NoRestore` - these already existed, but users found it hard to discover this powershell syntax: '-build:$false'
* `-Arch`/`--arch` - set the target CPU architecture to build. Defaults to x64
* `--os-name` - on non-Windows builds, manually specify if the build should target Alpine. generic Linux, or MacOS
* Rename flags used to build specific project types. The pattern now is `--build-$(group)` or `--no-build-$(group)` (In PowerShell its `-Build$(Group)` or `-NoBuild$(Group). Example: -NoBuildJava

Changes to build definitions:
* Update the ci build definition to build all supported architectures
* Support publishing multiple artifacts per job

Other changes:
* `-NoBuild` implies `-NoRestore`
* Add new properties, `TargetArchitecture`, `TargetOsName`, and `TargetRuntimeIdentifier`
* Replace usages of `SharedFxRid` with these new properties
* To make `--no-build-nodejs` actually work, replaced Components.Browser.JS.csproj with Components.Browser.JS.npmproj
* Fix errors when building for win-arm on a clean machine
* Fix a few other project errors, like using the wrong syntax for DefaultItemExcludes, or using the wrong Platform value for x86
2019-01-31 15:47:47 -08:00
Javier Calvarro Nelson 10156c496c
Merge branch 'master' into merge/release/2.2-to-master 2019-01-30 03:17:02 -08:00
Pranav K 93214b465c Move Cors Functional tests to a separate test group
Attemp #2 at addressing https://github.com/aspnet/AspNetCore-Internal/issues/1619

Puppetteer will attempt to download chromium as part of running the test. This seems odd, but
it might explain why this might be afflicted with the file descriptor contention issues that
the mondo repo tests encounter.

Moving these out in to a separate test group to see if this helps

Possible fix for https://github.com/aspnet/AspNetCore-Internal/issues/1619
2019-01-29 15:18:39 -08:00
Pavel Krymets 602a140a7a Merge branch 'release/2.2' 2019-01-28 21:51:18 -08:00
Pranav K 29898df8a8
Attempt to run Cors functional tests with watchman disabled. (#7076)
According to https://github.com/facebook/jest/issues/2219, jest will
not run tests if watchman is installed. It is not entirely clear if
this is the case in our OSX CI environment, but the symptoms seem close
to what's reported in the issue.

Possible fix for https://github.com/aspnet/AspNetCore-Internal/issues/1619
2019-01-28 16:44:56 -08:00
Pavel Krymets f06e1822f5
Enable strict mode in roslyn compiler (#6950) 2019-01-28 15:56:27 -08:00
Chris Ross 7d4b6fccff
Clean up ManualResetEvent usage in tests (#6961) 2019-01-28 12:10:16 -08:00
Nate McMaster ac04019e42
Remove obsolete build infrastructure (#6995)
Changes:

* Remove obsolete targets which are unnecessary now that this repo no longer builds git submodules in a separate build process
* Remove the need for static analysis of 'ArtifactInfo' items
* Simplify how the code signing task is configured
* Remove unused repo tasks
* Remove duplicate lists of external dependencies and packages to be produced
* Remove obsolete build definition
* Remove obsolete build script parameters
* Add VisualStudioSetupOutputPath
2019-01-28 09:57:59 -08:00
Nate McMaster 33bc4576da
Convert ProjectTemplates to build using ProjectReferences (#6935) 2019-01-23 15:54:47 -08:00
Artak a923c725a1 Fixed https://github.com/aspnet/AspNetCore/issues/5206: Fixing a minor html syntax error 2019-01-23 15:10:36 -08:00
Nate McMaster 922512a9fb
Convert the artifacts folder layout to match Arcade (#6850)
Changes:
* IsProductPackage => IsShippingPackage
* artifacts/$config/packages => artifacts/packages/$config
* packages/product => packages/Shipping
* packages/internal => packages/NonShipping
* Renamed MSBuild properties used for output folders
* Update build tools to use 2 spaces in global.json
2019-01-18 13:38:24 -08:00
Nate McMaster 090c53ce71
Update dependencies with darc (#6714) 2019-01-17 13:30:58 -08:00
Chris Ross 1f892d798d
Add AllowSynchronousIO to TestServer and IIS, fix tests (#6404) 2019-01-15 11:48:17 -08:00
James Newton-King 09b50850bc
Update AuthorizeFilter to no-op when AuthorizationMiddleware has run (#6346) 2019-01-15 20:29:23 +13:00