public void Should_set_Path_when_config_provides_path_value() { //Given var cryptoConfig = new CryptographyConfiguration(this.fakeEncryptionProvider, this.fakeHmacProvider); var storeConfig = new CookieBasedSessionsConfiguration(cryptoConfig) { Path = "/", Serializer = this.fakeObjectSerializer }; var store = new CookieBasedSessions(storeConfig); //When var response = new Response(); var session = new Session(new Dictionary <string, object> { { "key1", "val1" }, }); session["key2"] = "val2"; store.Save(session, response); //Then var cookie = response.Cookies.First(c => c.Name == storeConfig.CookieName); cookie.Path.ShouldEqual(storeConfig.Path); }
public void Should_save_nothing_if_the_session_is_null() { var response = new Response(); cookieStore.Save(null, response); response.Cookies.Count.ShouldEqual(0); }
public void Should_call_the_formatter_on_save() { var response = new Response(); var session = new Session(new Dictionary <string, object>()); session["key1"] = "value1"; var fakeFormatter = A.Fake <IObjectSerializer>(); var store = new CookieBasedSessions(this.fakeEncryptionProvider, this.fakeHmacProvider, fakeFormatter); store.Save(session, response); A.CallTo(() => fakeFormatter.Serialize("value1")).MustHaveHappened(Repeated.Exactly.Once); }
public void Should_be_able_to_load_an_object_previously_saved_to_session() { var response = new Response(); var session = new Session(new Dictionary<string, object>()); var payload = new DefaultSessionObjectFormatterFixture.Payload(27, true, "Test string"); var store = new CookieBasedSessions(new DefaultEncryptionProvider(), "the passphrase", "the salt", new DefaultSessionObjectFormatter()); session["testObject"] = payload; store.Save(session, response); var request = new Request("GET", "/", "http"); request.Cookies.Add(Helpers.HttpUtility.UrlEncode(response.Cookies.First().Name), Helpers.HttpUtility.UrlEncode(response.Cookies.First().Value)); var result = store.Load(request); result["testObject"].ShouldEqual(payload); }
public void Should_be_able_to_load_an_object_previously_saved_to_session() { var response = new Response(); var session = new Session(new Dictionary <string, object>()); var payload = new DefaultSessionObjectFormatterFixture.Payload(27, true, "Test string"); var store = new CookieBasedSessions(this.rijndaelEncryptionProvider, this.defaultHmacProvider, this.defaultObjectSerializer); session["testObject"] = payload; store.Save(session, response); var request = new Request("GET", "/", "http"); request.Cookies.Add(Helpers.HttpUtility.UrlEncode(response.Cookies.First().Name), Helpers.HttpUtility.UrlEncode(response.Cookies.First().Value)); var result = store.Load(request); result["testObject"].ShouldEqual(payload); }
public void Should_be_able_to_save_a_complex_object_to_session() { var response = new Response(); var session = new Session(new Dictionary <string, object>()); var payload = new DefaultSessionObjectFormatterFixture.Payload(27, true, "Test string"); var store = new CookieBasedSessions(this.rijndaelEncryptionProvider, this.defaultHmacProvider, this.defaultObjectSerializer); session["testObject"] = payload; store.Save(session, response); response.Cookies.Count.ShouldEqual(1); var cookie = response.Cookies.First(); cookie.Name.ShouldEqual(store.CookieName); cookie.Value.ShouldNotBeNull(); cookie.Value.ShouldNotBeEmpty(); }
public void Should_be_able_to_save_a_complex_object_to_session() { var response = new Response(); var session = new Session(new Dictionary <string, object>()); var payload = new DefaultSessionObjectFormatterFixture.Payload(27, true, "Test string"); var store = new CookieBasedSessions(new DefaultEncryptionProvider(), new DefaultHmacProvider(), "the passphrase", "the salt", "hmac passphrase", new DefaultSessionObjectFormatter()); session["testObject"] = payload; store.Save(session, response); response.Cookies.Count.ShouldEqual(1); var cookie = response.Cookies.First(); cookie.Name.ShouldEqual(Nancy.Session.CookieBasedSessions.GetCookieName()); cookie.Value.ShouldNotBeNull(); cookie.Value.ShouldNotBeEmpty(); }
public void Should_use_CookieName_when_config_provides_cookiename_value() { //Given var cryptoConfig = new CryptographyConfiguration(this.fakeEncryptionProvider, this.fakeHmacProvider); var storeConfig = new CookieBasedSessionsConfiguration(cryptoConfig) { CookieName = "NamedCookie", Serializer = this.fakeObjectSerializer }; var store = new CookieBasedSessions(storeConfig); //When var response = new Response(); var session = new Session(new Dictionary <string, object> { { "key1", "val1" }, }); session["key2"] = "val2"; store.Save(session, response); //Then response.Cookies.ShouldHave(c => c.Name == storeConfig.CookieName); }
public void Should_be_able_to_save_a_complex_object_to_session() { var response = new Response(); var session = new Session(new Dictionary<string, object>()); var payload = new DefaultSessionObjectFormatterFixture.Payload(27, true, "Test string"); var store = new CookieBasedSessions(new DefaultEncryptionProvider(), "the passphrase", "the salt", new DefaultSessionObjectFormatter()); session["testObject"] = payload; store.Save(session, response); response.Cookies.Count.ShouldEqual(1); var cookie = response.Cookies.First(); cookie.Name.ShouldEqual(Nancy.Session.CookieBasedSessions.GetCookieName()); cookie.Value.ShouldNotBeNull(); cookie.Value.ShouldNotBeEmpty(); }