]> WPIA git - gigi.git/blobdiff - tests/club/wpia/gigi/util/TestPasswordMigration.java
upd: rename package name and all references to it
[gigi.git] / tests / club / wpia / gigi / util / TestPasswordMigration.java
diff --git a/tests/club/wpia/gigi/util/TestPasswordMigration.java b/tests/club/wpia/gigi/util/TestPasswordMigration.java
new file mode 100644 (file)
index 0000000..17544a0
--- /dev/null
@@ -0,0 +1,40 @@
+package club.wpia.gigi.util;
+
+import static org.hamcrest.CoreMatchers.*;
+import static org.junit.Assert.*;
+
+import java.io.IOException;
+
+import org.junit.Rule;
+import org.junit.Test;
+
+import club.wpia.gigi.database.GigiPreparedStatement;
+import club.wpia.gigi.database.GigiResultSet;
+import club.wpia.gigi.testUtils.ManagedTest;
+import club.wpia.gigi.testUtils.RegisteredUser;
+import club.wpia.gigi.util.PasswordHash;
+
+public class TestPasswordMigration extends ManagedTest {
+
+    @Rule
+    public RegisteredUser ru = new RegisteredUser();
+
+    @Test
+    public void testPasswordMigration() throws IOException {
+        try (GigiPreparedStatement stmt = new GigiPreparedStatement("UPDATE users SET `password`=? WHERE id=?")) {
+            stmt.setString(1, PasswordHash.sha1("a"));
+            stmt.setInt(2, ru.getUser().getId());
+            stmt.execute();
+        }
+        String cookie = login(ru.getUser().getEmail(), "a");
+        assertTrue(isLoggedin(cookie));
+
+        try (GigiPreparedStatement stmt = new GigiPreparedStatement("SELECT `password` FROM users WHERE id=?")) {
+            stmt.setInt(1, ru.getUser().getId());
+            GigiResultSet res = stmt.executeQuery();
+            assertTrue(res.next());
+            String newHash = res.getString(1);
+            assertThat(newHash, containsString("$"));
+        }
+    }
+}