1 Commits

Author SHA1 Message Date
Tommy Parnell
fb6675ab94 escaped uris 2016-11-16 16:17:48 -05:00
6 changed files with 27 additions and 73 deletions

View File

@@ -6,6 +6,6 @@ if($env:APPVEYOR_REPO_TAG -eq "true")
nuget install OpenCover -Version 4.6.519 -OutputDirectory tools nuget install OpenCover -Version 4.6.519 -OutputDirectory tools
nuget install coveralls.net -Version 0.7.0 -OutputDirectory tools nuget install coveralls.net -Version 0.7.0 -OutputDirectory tools
.\tools\OpenCover.4.6.519\tools\OpenCover.Console.exe -target:"C:\Program Files\dotnet\dotnet.exe" -targetargs:" test "".\src\UriBuilder.Fluent.UnitTests"" -f net462" -register:user -filter:"+[UriBuilder*]* -[*Tests]*" -returntargetcode -output:opencover_results.xml .\tools\OpenCover.4.6.519\tools\OpenCover.Console.exe -target:"C:\Program Files\dotnet\dotnet.exe" -targetargs:" test "".\src\UriBuilder.Fluent.UnitTests"" -f net461" -register:user -filter:"+[UriBuilder*]* -[*Tests]*" -returntargetcode -output:opencover_results.xml
.\tools\coveralls.net.0.7.0\tools\csmacnz.Coveralls.exe --opencover -i .\opencover_results.xml .\tools\coveralls.net.0.7.0\tools\csmacnz.Coveralls.exe --opencover -i .\opencover_results.xml

View File

@@ -12,16 +12,15 @@ init:
before_build: before_build:
- ps: invoke-webrequest https://go.microsoft.com/fwlink/?LinkID=827524 -OutFile core.exe - ps: invoke-webrequest https://go.microsoft.com/fwlink/?LinkID=827524 -OutFile core.exe
- ps: .\core.exe /install /quiet /norestart - ps: .\core.exe /install /quiet /norestart
- ps: iwr -Uri https://download.microsoft.com/download/E/F/D/EFD52638-B804-4865-BB57-47F4B9C80269/NDP462-DevPack-KB3151934-ENU.exe -OutFile net452.exe
- ps: start-process .\net452.exe -Wait '/install /quiet /norestart'
build_script: build_script:
- ps: dotnet restore - ps: dotnet restore
- ps: dotnet build -c Release .\src\UriBuilder.Fluent - ps: dotnet build -c Release .\src\UriBuilder.Fluent
- ps: dotnet publish -c Release .\src\UriBuilder.Fluent.UnitTests - ps: dotnet build -c Release .\src\UriBuilder.Fluent.UnitTests
test_script: test_script:
- ps: dotnet test -c Release .\src\UriBuilder.Fluent.UnitTests
- ps: .\Coverage.ps1 - ps: .\Coverage.ps1
- ps: .\update-projectjson.ps1 - ps: .\update-projectjson.ps1
- ps: dotnet restore - ps: dotnet restore

View File

@@ -116,16 +116,6 @@ namespace FluentUriBuilder.Tests
.WithParameter("supgf", "no22"); .WithParameter("supgf", "no22");
Assert.Equal("http://awesome.com/?awesome=yodawg&supg=no2&supgf=no22", url.Uri.ToString()); Assert.Equal("http://awesome.com/?awesome=yodawg&supg=no2&supgf=no22", url.Uri.ToString());
} }
[Fact]
public void TestSerializedParameters()
{
var url = new UriBuilder("http://awesome.com")
.WithSerializedObject(new {yo="dawg"});
Assert.Equal("http://awesome.com/?yo=dawg", url.Uri.ToString());
url = new UriBuilder("http://awesome.com")
.WithSerializedObject(new {yo=""});
Assert.Equal("http://awesome.com/?yo", url.Uri.ToString());
}
[Fact] [Fact]
public void AddDictOfParams() public void AddDictOfParams()

View File

@@ -9,8 +9,7 @@
}, },
"frameworks": { "frameworks": {
"net462": { "net461": {},
},
"netcoreapp1.0": { "netcoreapp1.0": {
"dependencies": { "dependencies": {
"Microsoft.NETCore.App": { "Microsoft.NETCore.App": {

View File

@@ -1,7 +1,6 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Reflection;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
@@ -18,7 +17,6 @@ namespace System
/// <returns></returns> /// <returns></returns>
public static UriBuilder WithParameter(this UriBuilder bld, string key, params string[] values) => bld.WithParameter(key, valuesEnum: values); public static UriBuilder WithParameter(this UriBuilder bld, string key, params string[] values) => bld.WithParameter(key, valuesEnum: values);
public static UriBuilder WithParameter(this UriBuilder bld, string key, object value) => bld.WithParameter(key, new object[1] { value });
/// <summary> /// <summary>
/// Appends query strings from dictionary /// Appends query strings from dictionary
/// </summary> /// </summary>
@@ -59,7 +57,8 @@ namespace System
foreach(var value in valuesEnum) foreach(var value in valuesEnum)
{ {
var toSValue = value?.ToString(); var toSValue = value?.ToString();
if(string.IsNullOrWhiteSpace(toSValue)) continue; //whitespace is valid
if(string.IsNullOrEmpty(toSValue)) continue;
// we can't just have an = sign since its valid to have query string paramters with no value; // we can't just have an = sign since its valid to have query string paramters with no value;
if(!validValueHit) toSValue = "=" + value; if(!validValueHit) toSValue = "=" + value;
validValueHit = true; validValueHit = true;
@@ -120,7 +119,7 @@ namespace System
/// </summary> /// </summary>
/// <param name="bld"></param> /// <param name="bld"></param>
/// <param name="host"></param> /// <param name="host"></param>
/// <exception cref="ArgumentNullException">You must pass a ho0st</exception> /// <exception cref="ArgumentNullException">You must pass a host</exception>
/// <returns></returns> /// <returns></returns>
public static UriBuilder WithHost(this UriBuilder bld, string host) public static UriBuilder WithHost(this UriBuilder bld, string host)
{ {
@@ -140,20 +139,7 @@ namespace System
bld.Scheme = predicate ? "https" : "http"; bld.Scheme = predicate ? "https" : "http";
return bld; return bld;
} }
public static string ToEscapedString(this Uri bld) => Uri.EscapeUriString(bld.ToString());
#if (netstandard15) public static string ToEscapedString(this UriBuilder bld) => Uri.EscapeUriString(bld.Uri.ToString());
public static UriBuilder WithSerializedObject(this UriBuilder bld, object serialize)
{
var types = serialize.GetType().GetTypeInfo().GetProperties(BindingFlags.Public | BindingFlags.Instance | BindingFlags.GetProperty);
foreach(var type in types)
{
bld.WithParameter(type.Name, type.GetValue(serialize, null));
}
return bld;
}
#endif
} }
} }

View File

@@ -1,48 +1,28 @@
{ {
"version": "1.0.0-*", "version": "1.0.0-*",
"packOptions": { "packOptions": {
"owners": [ "owners": [
"Tommy Parnell" "Tommy Parnell"
], ],
"repository": { "projectUrl": "https://github.com/TerribleDev/UriBuilder.Fluent",
"url": "https://github.com/TerribleDev/UriBuilder.Fluent" "summary": "Fluent extensions for UriBuilder",
}, "tags": [
"summary": "Fluent extensions for UriBuilder", "Url building",
"tags": [ "Uri",
"Url building", "Uri building",
"Uri", "fluent",
"Uri building", "extension"
"fluent", ]
"extension" },
] "dependencies": {
"NETStandard.Library": "1.6.0"
}, },
"authors": [ "authors": [
"Tommy Parnell" "Tommy Parnell"
], ],
"frameworks": { "frameworks": {
"netstandard1.1": { "netstandard1.1": {
"buildOptions": { "imports": "dnxcore50"
"define": [ "netstandard11" ]
},
"dependencies": {
"NETStandard.Library": "1.6.0"
}
},
"netstandard1.5": {
"dependencies": {
"NETStandard.Library": "1.6.0"
},
"buildOptions": {
"define": [ "netstandard15" ]
}
},
"net45":{
"buildOptions": {
"define": [ "netstandard15" ]
},
"frameworkAssemblies": {
"System.Runtime":"4.0.0"
}
} }
} }
} }