diff --git a/tests/p_ipa-server/0-install_freeipa.sh b/tests/p_ipa-server/0-install_freeipa.sh
new file mode 100755
index 0000000..f9c7419
--- /dev/null
+++ b/tests/p_ipa-server/0-install_freeipa.sh
@@ -0,0 +1,8 @@
+#!/bin/bash
+# Author: James Hogarth <james.hogarth@gmail.com>
+#	  
+
+t_Log "Running $0 - Installing packages"
+t_InstallPackage ipa-server bind-dyndb-ldap
+
+
diff --git a/tests/p_ipa-server/1-configure_freeipa.sh b/tests/p_ipa-server/1-configure_freeipa.sh
new file mode 100755
index 0000000..f85e161
--- /dev/null
+++ b/tests/p_ipa-server/1-configure_freeipa.sh
@@ -0,0 +1,12 @@
+#!/bin/bash
+# Author: James Hogarth <james.hogarth@gmail.com>
+#
+
+t_Log "Configuring IPA server"
+
+
+
+ipa-server-install -U --hostname=c6test.c6ipa.local --ip-address=$(ip a s dev eth0 | awk '$0 ~ /scope global eth0/ {print $2}' | cut -d'/' -f 1) -r C6IPA.LOCAL -n c6ipa.local -p p455w0rd -a p455w0rd --ssh-trust-dns --setup-dns --forwarder=$(awk '$0 ~ /nameserver/ {print $2}' /etc/resolv.conf | head -n 1)
+
+t_CheckExitStatus $?
+
diff --git a/tests/p_ipa-server/2-verify_kerberos_tickets.sh b/tests/p_ipa-server/2-verify_kerberos_tickets.sh
new file mode 100755
index 0000000..fc926a2
--- /dev/null
+++ b/tests/p_ipa-server/2-verify_kerberos_tickets.sh
@@ -0,0 +1,37 @@
+#!/bin/bash
+# Author: James Hogarth <james.hogarth@gmail.com>
+#
+
+# kinit cannot take password from stdin so use expect
+
+t_InstallPackage expect
+
+t_Log "Running $0 - testing host kerberos principal
+klist -k /etc/krb5.keytab | grep "host/c6test.c6ipa.local" &> /dev/null
+
+t_CheckExitStatus $?
+
+t_Log "Running $0 - testing admin user kerberos principal
+
+kdestroy &> /dev/null
+
+klist 2>&1  | grep "No credentials" &> /dev/null
+
+t_CheckExitStatus $?
+
+expect -f - &> /dev/null <<EOF
+set send_human {.1 .3 1 .05 2}
+spawn kinit admin
+sleep 1
+expect "Password for admin@C6IPA.LOCAL:"
+send -h "p455w0rd\r"
+sleep 1
+close
+EOF
+
+klist | grep "admin@C6IPA.LOCAL" &> /dev/null
+
+t_CheckExitStatus $?
+
+
+# MORE STUFF GOES HERE
diff --git a/tests/p_ipa-server/3-adduser.sh b/tests/p_ipa-server/3-adduser.sh
new file mode 100755
index 0000000..34637cd
--- /dev/null
+++ b/tests/p_ipa-server/3-adduser.sh
@@ -0,0 +1,78 @@
+#!/bin/bash
+# Author: James Hogarth <james.hogarth@gmail.com>
+#
+
+# Need admin credentials
+kdestroy &> /dev/null
+
+klist 2>&1  | grep "No credentials" &> /dev/null
+
+t_CheckExitStatus $?
+
+expect -f - &> /dev/null <<EOF
+set send_human {.1 .3 1 .05 2}
+spawn kinit admin
+sleep 1
+expect "Password for admin@C6IPA.LOCAL:"
+send -h "p455w0rd\r"
+sleep 1
+close
+EOF
+
+klist | grep "admin@C6IPA.LOCAL" &> /dev/null
+
+t_CheckExitStatus $?
+
+
+
+t_Log "Running $0 - test adding user"
+userdetails="$(ipa user-add --first=test --last=user --random testuser)"
+echo "$userdetails" | grep 'Added user "testuser"' &> /dev/null 
+
+t_CheckExitStatus $?
+
+t_Log "Running $0 - verify details of user"
+
+echo "$userdetails" | grep ' First name: test' &> /dev/null 
+
+t_CheckExitStatus $?
+
+echo "$userdetails" | grep 'Last name: user' &> /dev/null 
+
+t_CheckExitStatus $?
+
+echo "$userdetails" | grep 'Full name: test user' &> /dev/null 
+
+t_CheckExitStatus $?
+
+echo "$userdetails" | grep 'Home directory: /home/testuser' &> /dev/null 
+
+t_CheckExitStatus $?
+
+t_Log "Running $0 - testing initial password change of user"
+kdestroy &> /dev/null
+
+expect -f - &> /dev/null  <<EOF
+set send_human {.1 .3 1 .05 2}
+spawn kinit testuser
+sleep 1
+expect "Password for testuser@C6IPA.LOCAL: "
+send -h -- "$(echo "$userdetails" | awk '$0 ~ /Random password/ {print $3}')\r"
+sleep 1
+expect "Enter new password: "
+send -h -- "newp455w0rd\r"
+sleep 1
+expect "Enter it again: "
+send -h -- "newp455w0rd\r"
+sleep 1
+close
+EOF
+
+klist | grep "testuser@C6IPA.LOCAL" &> /dev/null
+
+t_CheckExitStatus $?
+
+kdestroy &> /dev/null
+
+
+