* Add basic tests for duplicate attributes
* Add AddMultipleAttributes improve RTB
- Adds AddMultipleAttributes
- Fix RTB to de-dupe attributes
- Fix RTB behaviour with boxed EventCallback (#8336)
- Add lots of tests for new RTB behaviour and EventCallback
* Harden EventCallback test
This was being flaky while I was running E2E tests locally, and it
wasn't using a resiliant equality comparison.
* Add new setting on ParameterAttribute
Adds the option to mark a parameter as an *extra* parameter. Why is this
on ParameterAttribute and not a new type? It makes sense to make it a
modifier on Parameter so you can use it both ways (explicitly set it, or
allow it to collect *extras*).
Added unit tests and validations for interacting with the new setting.
* Add renderer tests for 'extra' parameters
* Refactor Diagnostics for more analyzers
* Simplify analyzer and fix CascadingParameter
This is the *easy way* to write an analyzer that looks at declarations.
The information that's avaialable from symbols is much more high level
than syntax. Much of what's in this code today is needed to reverse
engineer what the compiler does already. If you use symbols you get to
benefit from all of that.
Also added validation for cascading parameters to the analyzer that I
think was just missing due to oversight.
The overall design pattern here is what I've been converging on for the
ASP.NET Core analyzers as a whole, and it seems to scale really well.
* Add analyzer for types
* Add analyzer for uniqueness
This involved a refactor to run the analyzer per-type instead of
per-property.
* Fix project file
* Adjust name
* PR feedback on PCE and more renames
* Remove unused parameter
* Fix#10398
* Add E2E test
* Pranavs cool feedback
* Optimize silent frame removal
* code check
* pr feedback
* Fix RendererSyncContext.Post()
Fixes: #9683 - SignalR connection breaks on large DOM
The root cause here is a misbehaving sync context. It's not legal for a
Post() implementation to run a callback synchronously. We want that
behavior for most of the functionality Blazor calls directly, but Post()
should always go async or else various threading primitives are broken.
* Fix incorrect tests
These tests have the assumption that setting the result of a TCS will
execution continuations synchronously. This was a bug in our
SyncContext, and these tests needed updating to be more resiliant.
* Remove a delegate allocation
* Fix more null refs in Api Analyzers
* Make attributes used by analyzer public
* Compile analyzer tests against ref assemblies
* Turn on Nullable reference types and harden some null-checks
Fixes https://github.com/aspnet/AspNetCore/issues/8686
* CR feedback left over from #10227
* Begin adding E2E test case
* Add cookie auth and test login page
* Make E2E auth component work client-side too
* Restructure auth E2E tests around a router so there can easily be multiple such test components
* Add E2E test case for AuthorizeView
* Prepare for E2E test implementations
* Fix ToBaseRelativePath handling of hashes
... otherwise E2E test will fail, because we're using the hash to control server-or-client execution
* Decouple E2E execution mode from hosting mode
* Actual E2E tests for cascading authentication state
* Actual E2E tests for AuthorizeView (in "no authentication rule" mode)
* Fix inconsistent namespace
* CR: Manual ref assembly definitions for AuthorizeView/CascadingAuthenticationState
* Update versioning for local and PR builds to match Arcade versioning
* Mark CanCancelIAsyncEnumerableClientToServerUpload as flaky - cref aspnet/AspNetCore-Internal#2465
* Disable rollforward in project template tests (3.0.0-dev is older than 3.0.0-preview*). This prevents tests from rolling forward onto technically older bits
The Arcade SDK requires that the obj/ and bin/ folders be placed in the top-level artifacts/ folder of the repo. Although this PR does not complete our Arcade convergence, this is a step towards updating our repo to build with the Arcade SDK.
Changes:
* Set output path for build to artifacts/bin/$(ProjectName)/
* Set intermediate output path for build to artifacts/obj/$(ProjectName)/
* Cleanup .gitignore files (remove duplication between repo-root and tested gitignore files)
* Add code check which looks for project files that share the same name (could cause issues)
* Rename project files to have unique names (avoid race condition of build output)
* Update all locations which were hard-coded to expect bin/ and obj/ in the project directory
* Add overrides for tests which still assert test binaries exist in a given location relative to the source code
- Make sure we always await the last flush task before calling FlushAsync
again instead of preemptively calling FlushAsync and checking to see
if the ValueTask is incomplete before bothering to acquire the _flushLock
- This now acquires the _flushLock fore every call to Response.Body.Write
whereas this only happened for truly async writes before.
- I don't think this is a big concern since this should normally be uncontested,
and DefaultPipeWriter.FlushAsync/GetResult already acquire a lock.
* Make RouteAttribute non-inherited
Fixes: #5529
Inheriting and looking for inherited route attributes will cause nothing
but trouble. We had a bug tracking what to do about this and we decided
to make it really clear that routes are not inherited.
Previously the attribute was marked as inherited, but we woulnd't look
for inherited routes.
* add test