public void Filter() { var settings = new PesudoStaticSettings(); settings.IncludeUrlPaths.Add("/include/me"); settings.ExcludeUrlPaths.Add("/exclude/me"); using (Application.OverrideIoc()) { var filter = new PesudoStaticUrlFilter(); var configManagerMock = Substitute.For <GenericConfigManager>(); configManagerMock.GetData <PesudoStaticSettings>().Returns(settings); Application.Ioc.Unregister <GenericConfigManager>(); Application.Ioc.RegisterInstance(configManagerMock); var testUrl = new Func <string, string>(url => { filter.Filter(ref url); return(url); }); Assert.Equals(testUrl(""), ""); Assert.Equals(testUrl("/"), "/"); Assert.Equals(testUrl("#abc"), "#abc"); Assert.Equals(testUrl("http://localhost/"), "http://localhost/"); Assert.Equals(testUrl("ftp://localhost/"), "ftp://localhost/"); Assert.Equals(testUrl("/test/abc.jpg"), "/test/abc.jpg"); Assert.Equals(testUrl("/test/abc/"), "/test/abc/"); Assert.Equals(testUrl("/test/abc/a-b?id=1"), "/test/abc/a-b?id=1"); Assert.Equals(testUrl("/test/a-bc/ab?id=1"), "/test/a-bc/ab-1.html"); Assert.Equals(testUrl("/exclude/me"), "/exclude/me"); settings.PesudoStaticPolicy = PesudoStaticPolicies.WhiteListPolicy; Assert.Equals(testUrl("/include/me"), "/include/me.html"); Assert.Equals(testUrl("/otherwise"), "/otherwise"); settings.PesudoStaticPolicy = PesudoStaticPolicies.BlackListPolicy; settings.EnablePesudoStatic = false; Assert.Equals(testUrl("/no_enabled"), "/no_enabled"); settings.EnablePesudoStatic = true; Assert.Equals(testUrl("/enabled"), "/enabled.html"); Assert.Equals(testUrl("login"), "login.html"); Assert.Equals(testUrl("/example/view?id=1"), "/example/view-1.html"); Assert.Equals(testUrl("/example/view?Id=1"), "/example/view-Id-1.html"); var result = testUrl("/example/view?tag=123&key=asd"); Assert.IsTrueWith( (result == "/example/view-tag-123-key-asd.html" || result == "/example/view-key-asd-tag-123.html"), result); Assert.Equals(testUrl("view?name=john&key=1-1"), "view-name-john.html?key=1-1"); Assert.Equals(testUrl("view?name=john&key=%26"), "view-name-john.html?key=%26"); } }
public void Filter() { var settings = new PesudoStaticSettings(); settings.IncludeUrlPaths.Add("/include/me"); settings.ExcludeUrlPaths.Add("/exclude/me"); using (Application.OverrideIoc()) { var filter = new PesudoStaticUrlFilter(); Application.Ioc.Unregister <GenericConfigManager>(); Application.Ioc.RegisterInstance <GenericConfigManager>( new PesudoStaticHandlerTest.GenericConfigManagerMock(settings)); var testUrl = new Func <string, string>(url => { filter.Filter(ref url); return(url); }); Assert.Equals(testUrl(""), ""); Assert.Equals(testUrl("/"), "/"); Assert.Equals(testUrl("#abc"), "#abc"); Assert.Equals(testUrl("http://localhost/"), "http://localhost/"); Assert.Equals(testUrl("ftp://localhost/"), "ftp://localhost/"); Assert.Equals(testUrl("/test/abc.jpg"), "/test/abc.jpg"); Assert.Equals(testUrl("/test/abc/"), "/test/abc/"); Assert.Equals(testUrl("/test/abc/a.b?id=1"), "/test/abc/a.b?id=1"); Assert.Equals(testUrl("/test/a-bc/ab?id=1"), "/test/a-bc/ab.1.html"); Assert.Equals(testUrl("/exclude/me"), "/exclude/me"); settings.PesudoStaticPolicy = PesudoStaticPolicies.WhiteListPolicy; Assert.Equals(testUrl("/include/me"), "/include/me.html"); Assert.Equals(testUrl("/otherwise"), "/otherwise"); settings.PesudoStaticPolicy = PesudoStaticPolicies.BlackListPolicy; settings.EnablePesudoStatic = false; Assert.Equals(testUrl("/no_enabled"), "/no_enabled"); settings.EnablePesudoStatic = true; Assert.Equals(testUrl("/enabled"), "/enabled.html"); Assert.Equals(testUrl("login"), "login.html"); Assert.Equals(testUrl("/example/view?id=1"), "/example/view.1.html"); Assert.Equals(testUrl("/example/view?Id=1"), "/example/view.Id.1.html"); var result = testUrl("/example/view?tag=123&key=asd"); Assert.IsTrueWith( (result == "/example/view.tag.123.key.asd.html" || result == "/example/view.key.asd.tag.123.html"), result); Assert.Equals(testUrl("view?name=john&key=1.1"), "view.name.john.html?key=1.1"); Assert.Equals(testUrl("view?name=john&key=%26"), "view.name.john.html?key=%26"); } }