Ryan Nowak
5b8db03a57
Fixing up a few small issues
...
The instruction matcher was missing a few details, which made it faster
than it should have been. Right now I'm trying to keep the design of
these in sync. Once I fixed that it exposed a legitimate bug that was
blocking the github benchmark.
2018-06-15 18:04:43 -07:00
Ryan Nowak
00e99dbbb2
Flesh out experimental matchers
...
This change improves this area a bit by consolidating the matcher
implementations between the benchmarks project and the conformance
tests.
Additionally I split the minimal matcher into a really trivial
implementation for the simple tests and a more complex one for the
larger tests. This allows us to keep the plaintext/techempower scenario
in sight while also having a good baseline for the more sophisticated
tests.
Also starting to add tests that verify that matchers behave as expected.
The matchers now successfully execute all of these benchmarks, which
means that they support literals and parameters.
Missing features:
- complex segments
- catchall
- default values
- optional parameters
- constraints
- complex segments with file extensions
This is a good place to iterate a bit more of perf and try to make a
decision about what we want to implement.
2018-06-15 15:43:50 -07:00
Kiran Challa
d3ddc1709a
Added initial support for link generation when using Dispatcher
2018-06-14 15:31:30 -07:00
James Newton-King
9efa7665c9
Fix endpoint constraint cache ( #555 )
2018-06-13 16:40:06 +12:00
James Newton-King
28d1bc4fa2
Fix TreeMatcher's use of EndpointSelector ( #551 )
2018-06-12 15:47:34 +12:00
James Newton-King
84bc8351c9
Initial endpoint constraints functionality ( #548 )
2018-06-12 09:43:17 +12:00
Ryan Nowak
08f12f2bfd
Add sample matcher tests
2018-06-09 13:29:06 -07:00
James Newton-King
1b470f3d3b
Fix Endpoint order in TreeMatcher ( #542 )
2018-06-08 16:19:56 +12:00
James Newton-King
21f8ce5e95
Initial DispatcherMiddleware tests ( #529 )
2018-06-07 21:47:06 +12:00
kishan.anem
acea87a617
IUrlHelper and support for RouteOptions.LowercaseUrls
...
changes are made as suggestions.
@rynowak
#518
#Issue: aspnet/Mvc#7720
2018-05-31 20:07:01 -07:00
kishan.anem
cb77c17cf4
TestCase added and IUrlHelper and support for RouteOptions.LowercaseUrls
...
checked appliesd to the query string.
@rynowak
#518
#Issue: aspnet/Mvc#7720
2018-05-31 20:07:01 -07:00
Kiran Challa
39f7420c4d
Fixed routing test
2018-04-13 11:51:45 -07:00
=
7113e54267
Update usage of TestSink
2018-04-12 16:17:04 -07:00
Kiran Challa
4184b2406d
Updated to make routing always use UrlEncoder.Default and not depend on DI to get it.
...
[Fixes #513 ] RedirectToAction with Non-English Characters in Parameters and Authentication Causes Error
2018-04-12 05:15:45 -07:00
Jass Bagga
57697baedb
Tolerate leading "~/" or "/" ( #509 )
2018-01-11 13:00:01 -08:00
Jass Bagga
93d20ec78c
Revert Dispatcher changes ( #508 )
...
Addresses aspnet/Home#2741
2018-01-10 12:53:17 -08:00
Jass Bagga
54e96bd404
Tolerate leading "~/" or "/" ( #499 )
...
Addresses #441
2017-11-21 14:20:17 -08:00
Pranav K
b67c63927c
Update samples and tests to target netcoreapp2.1
2017-11-13 16:45:38 -08:00
Nate McMaster
f4fb178f55
Pin tool and package versions to make builds more repeatable
...
Part of aspnet/Universe#575
2017-11-01 16:32:09 -07:00
Ryan Nowak
736b49294d
Add Template abstraction
...
This change adds the Template as a top level abstraction. URL templating
is now a two-stage process.
First you use a 'key' to look up a Template, then you use the Template
to create the URL.
This change also has some cleanup of the way RoutePatternBinder gets
instantiated. I added a factory service so that most of the complex
things can be made internal to Dispatcher. Now it's much easier to
constuct and use. These impacts some pubternal APIs that we already
broke, but makes them actually nice :)
Also cleaned up some tests and fixed one that was broken and not
running.
2017-10-25 22:15:24 -07:00
Ryan Nowak
2d661396df
Port TemplateBinder to dispatcher
2017-10-25 14:28:20 -07:00
Jass Bagga
eebc7db2ca
Use RoutePatternMatcher logic in TemplateMatcher ( #484 )
2017-10-25 14:16:04 -07:00
Ryan Nowak
bd517f891f
Support conversions from RouteTemplate -> RoutePattern
2017-10-20 16:58:14 -07:00
Jass Bagga
fdc5f21428
Port PathTokenizer ( #478 )
2017-10-20 13:24:00 -07:00
Ryan Nowak
08a64048da
Redesign public API for templates
...
-Renamed RouteTemplate -> RoutePattern
-Made immutable
-Added Builder
-Lots of fixes to parser to support new design
There are a few small issues logged for follow-up but this is mostly in
the place I want it design-wise.
2017-10-19 09:41:45 -07:00
Jass Bagga
3a5cd6dd25
Port TemplateParser to Dispatcher project ( #473 )
...
Addresses #466
2017-10-17 11:52:26 -07:00
Nate McMaster
6b3d42f6bd
Minor changes to test code to resolve xUnit2013 build errors
2017-10-05 15:26:36 -07:00
Nate McMaster
e67d85d30c
Use PackageLineup to manage PackageReference versions
2017-08-29 11:31:54 -07:00
Nate McMaster
44f9a7083b
Use Directory.Build.props/targets
2017-08-29 11:30:03 -07:00
Nate McMaster
248f15dee1
Upgrade to xunit 2.3.0-beta4
...
Includes some changes as required by the new analyzers in this upgrade
2017-08-22 17:49:54 -07:00
Joonas Westlin
a18f59ab88
Changed expected exception message to the one defined in Resources.resx.
...
Removed the Debug.Assert as that caused the test runner to crash as in
this case the preceding part is not a literal.
Fixes the test runner crash.
2017-05-24 08:23:20 -07:00
Joonas Westlin
f457c7b9d8
Changed expected parameter p2 to non-optional as it is non-optional in the template string.
...
Fixes test.
2017-05-24 08:23:20 -07:00
Ryan Brandenburg
efb097ce60
Target .NET Standard 2.0 and add net461 testing
2017-05-23 14:38:36 -07:00
Nate McMaster
d075f1bcea
Upgrade test framework versions and fix test issues
2017-05-12 15:13:17 -07:00
Pranav K
ce021a888e
Change TFM to netcoreapp2.0
2017-05-05 09:49:42 -07:00
Ryan Nowak
232b73a151
Fix aspnet/Mvc#6218
...
This fixes the case described in the comments in TemplateBinder.
This case is much more common for pages which is why we're only seeing it
now. We've had this issue for all of 1.0.0 in both conventional and
attribute routing.
2017-04-28 17:00:35 -07:00
Kiran Challa
95aadb3f4f
removed dead code
2017-04-20 16:47:26 -07:00
Kiran Challa
2388cca5ac
Workaround for issue https://github.com/aspnet/Routing/issues/390
2017-04-20 16:47:26 -07:00
Steve Sanderson
8c58086030
Make TreeRouter restore RouteData snapshots consistently. Fixes #394 .
2017-04-11 15:36:34 +01:00
Kiran Challa
77da34c7b3
Converted sample and test projects to netcoreapp2.0
2017-03-23 17:04:59 -07:00
Pranav K
1ef45e64b8
Update to net46
2017-03-22 18:26:48 -07:00
Nate McMaster
101764328b
Consolidate dependency versions to one file and remove workarounds
2017-03-15 17:01:10 -07:00
Ajay Bhargav Baaskaran
4569750d86
Using NullLogger types from Logging.Abstractions ( #389 )
2017-03-14 12:19:33 -07:00
Doug Bunting
ce76fc02f2
Bump test projects up to .NET 4.5.2
...
- aspnet/Testing#248
- xUnit no longer supports .NET 4.5.1
- build tests for desktop .NET only on Windows
2017-02-14 16:35:35 -08:00
Pranav K
0f4ce625ed
Update to VS 2017 RC3
2017-01-27 11:04:42 -08:00
Kiran Challa
755d436840
Fixed error message related to escaping curly braces.
2017-01-03 14:33:36 -08:00
Kiran Challa
071b616178
Merge branch 'rel/1.1.1' into dev
...
# Conflicts:
# NuGet.config
# samples/RoutingSample.Web/project.json
# src/Microsoft.AspNetCore.Routing.Abstractions/project.json
# src/Microsoft.AspNetCore.Routing.DecisionTree.Sources/project.json
# src/Microsoft.AspNetCore.Routing/project.json
# test/Microsoft.AspNetCore.Mvc.Routing.Abstractions.Tests/project.json
# test/Microsoft.AspNetCore.Routing.DecisionTree.Sources.Tests/project.json
# test/Microsoft.AspNetCore.Routing.FunctionalTests/project.json
# test/Microsoft.AspNetCore.Routing.Tests/project.json
2017-01-03 13:33:26 -08:00
Kiran Challa
4bfd663c45
[ Fixes #370 ] Raw route values should be restored after template binder failing binding values when generating a url
...
- Reverted changes made in commit: 1c9a54aeb8
2017-01-03 13:23:36 -08:00
Pranav K
ce525150ab
Updating to 4.4 CoreFx packages
2016-12-21 22:55:19 -08:00
Kiran Challa
20967cfa76
[ Fixes #367 ] Add extensions on WebHostBuilder for super simple HTTP service application building
2016-12-21 10:04:02 -08:00
Pranav K
3db35194c9
Pinning versions for 1.1.0 release
2016-11-18 12:13:32 -08:00
Pranav K
d3c145cbe8
Updating versions to 1.2.0-*
2016-11-09 14:19:24 -08:00
Pranav K
d81ea871fb
Updating to netcoreapp1.1
2016-10-13 11:24:12 -07:00
Pranav K
5c28a07a6f
Revert "Updating to netcoreapp1.1"
...
This reverts commit 7e082dbdef .
2016-10-12 16:09:35 -07:00
Pranav K
7e082dbdef
Updating to netcoreapp1.1
2016-10-12 13:46:26 -07:00
Pranav K
67d0c13815
Updating partner package versions
2016-10-03 20:00:38 -07:00
jacalvar
74a3063c45
[ Fixes #357 ] Fix behavior when optional parameters are defined within a route and not at the end
2016-10-03 19:31:17 -07:00
jacalvar
438ec83227
[ Fixes #359 ] Routing is matching empty segments to parameters and defaults are wrong
2016-10-03 15:34:04 -07:00
Pavel Krymets
032bcf43b2
Use TaskCache class from Microsoft.Extensions.TaskCache.Sources ( #361 )
...
Instead of Task.FromResult(0)
2016-09-08 09:25:44 -07:00
Kiran Challa
714c3d6659
[ Fixes #4991 ] Misleading MissingMethodException message for incorrect routes
2016-08-10 12:09:28 -07:00
Pranav K
e1b2ee6627
Updating to Moq \ Castle.Core that does not require imports
2016-08-08 12:25:00 -07:00
Ivano Scifoni
88de3d5070
StringRouteConstraint implementation
2016-08-04 10:39:53 -07:00
Doug Bunting
1bcd01338a
One build to rule them all
...
- well, at least VS and command-line builds will share output
- part of aspnet/Coherence-Signed#277
2016-07-07 12:31:06 -07:00
Ajay Bhargav Baaskaran
902190406d
Updating to RTM builds of xunit and Moq
2016-07-05 17:10:14 -07:00
jacalvar
90dc4bc207
[ Fixes #324 ] Default parameters are not taken into account on attribute routing
2016-07-01 16:06:03 -07:00
Ryan Nowak
0978a7dd16
Add some tests, rename misnamed file
2016-07-01 09:29:02 -07:00
Pranav K
2c264efd42
Updating to dev versions
2016-06-16 10:18:32 -07:00
N. Taylor Mullen
334d14ac66
Remove direct Microsoft.NETCore.Platforms dependency.
...
- Microsoft.NETCore.App now pulls this package in.
aspnet/Coherence-Signed#344
2016-06-13 15:29:38 -07:00
jacalvar
dd79d0b88c
[ Fixes #316 ] TreeRouter does not match a route with the correct length
2016-06-03 12:55:20 -07:00
Pranav K
74a246d34c
Merge branch 'release' into dev
2016-05-02 15:21:04 -07:00
Pranav K
0ce851680b
Fix build warnings
2016-05-02 11:27:25 -07:00
Ryan Nowak
e8ce0e7523
TreeRouter cleanup
2016-04-20 18:12:10 -07:00
Pranav K
f826be9206
Use latest build of dotnet-test-xunit
2016-04-19 14:54:10 -07:00
Pranav K
ea2d30ff49
Merge branch 'release' into dev
2016-04-19 14:54:10 -07:00
Pavel Krymets
793cd22aa0
Merge branch 'release' into dev
2016-04-18 17:03:21 -07:00
Pavel Krymets
d98924f713
Bring Microsoft.NETCore.Platforms dependency back
2016-04-18 17:03:18 -07:00
Pavel Krymets
d7a36ce05e
Merge branch 'release' into dev
2016-04-14 16:33:54 -07:00
Pavel Krymets
b1f720ef12
Migrate tests, tools and samples to portable
2016-04-14 16:28:13 -07:00
Ryan Nowak
9cd3fe34a5
Improve tests for catch-all + defaults/nulls
2016-04-11 15:17:07 -07:00
Ryan Nowak
a51c78da06
Remove dictionary alloc in routing
...
This changes TemplateMatcher to mutate RouteData.Values directly instead
of creating a new dictionary and then merging in values. This is one the
biggest single costs in routing in terms of both allocations and execution
time.
So Match now becomes TryMatch. This will dirty the state of the RVD, so
the caller needs to snapshot it before calling into it (handled
inside the TreeRouter or RouteCollection).
Some subtle changes were needed to how/when values are added to be
compatible with the existing tests. The general idea is that we add null
values for non-parameter defaults or catchalls, but only if they don't
trounce an existing value. This logic used to live in MergeValues but now
it's in TryMatch since TryMatch might be working from existing data.
Also fixed the .sln to avoid building a package that we use as shared
source.
2016-04-08 08:46:00 -07:00
Doug Bunting
67f424360c
React to HttpAbstractions namespace changes
...
- aspnet/HttpAbstractions#549 and aspnet/HttpAbstractions#592
- clean up `using`s
2016-03-30 16:10:41 -07:00
Doug Bunting
39b4f6fe53
An `ObjectPoolProvider` is always registered
...
- react to aspnet/Hosting/pull#673
2016-03-25 10:08:16 -07:00
David Fowler
7399cc8957
Fixed build
2016-03-25 02:40:08 -07:00
Kiran Challa
0c3f6497db
Fixes issue of request path segment length greater than the wildcard template route
...
Fixes https://github.com/aspnet/Mvc/issues/4256
2016-03-23 17:36:07 -07:00
Ajay Bhargav Baaskaran
3127e7a2e9
[ Fixes #294 ] Set DefaultHandler in RouteBuilder
2016-03-10 15:25:34 -08:00
John Luo
b7fc5f06cd
Fix test with mismatched literal type
2016-03-10 15:15:56 -08:00
Doug Bunting
27c6d8c665
Remove project name from output path
...
- aspnet/Coherence-Signed#187
- remove `<RootNamespace>` settings but maintain other unique aspects e.g. `<DnxInvisibleContent ... />`
- in a few cases, standardize on VS version `14.0` and not something more specific
2016-03-02 21:06:00 -08:00
N. Taylor Mullen
bb7cb4a0d9
Transition to netstandard.
...
- dotnet5.X => netstandard1.y (where y = x-1).
- DNXCore50 => netstandardapp1.5.
- Applied the same changes to ifdefs.
2016-03-01 13:37:03 -08:00
John Luo
8c64656882
Updating test TFMs for custom test discovery
2016-02-19 15:08:13 -08:00
Kiran Challa
51c4dd43b3
Enable tests to run using dotnet xunit runner
2016-02-10 15:01:44 -08:00
Ryan Nowak
d97947e229
Move routing extensions to .Routing
2016-02-04 09:55:09 -08:00
Ryan Nowak
4b980c8afa
Optimize defensive copies where possible
2016-02-03 15:36:42 -08:00
Ryan Nowak
48eb000a0e
Fix routing build
2016-02-02 11:44:52 -08:00
N. Taylor Mullen
70d674410e
Rename AspNet 5 file contents.
...
See https://github.com/aspnet/Announcements/issues/144 for more information.
2016-01-22 12:24:38 -08:00
N. Taylor Mullen
ace4553d77
Rename AspNet 5 folders and files.
...
See https://github.com/aspnet/Announcements/issues/144 for more information.
2016-01-22 12:24:31 -08:00