commit b11af9b174b4301204a5cf6a9773f0b17e734a28
Author: schenkj <schenkj@students.zcu.cz>
Date:   Fri May 20 09:31:52 2022 +0200

    Testing cleanup + readme
    
    cleaning testing, adding new comments to user creation frontend, adding readme

diff --git a/Backend/BackendTesting/AnotationTesting.cs b/Backend/BackendTesting/AnotationTesting.cs
deleted file mode 100644
index 8b06d68..0000000
--- a/Backend/BackendTesting/AnotationTesting.cs
+++ /dev/null
@@ -1,12 +0,0 @@
-﻿using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace BackendTesting
-{
-    public class AnotationTesting
-    {
-    }
-}
diff --git a/Backend/BackendTesting/README.md b/Backend/BackendTesting/README.md
new file mode 100644
index 0000000..e75e9be
--- /dev/null
+++ b/Backend/BackendTesting/README.md
@@ -0,0 +1,80 @@
+# Anotace pro analýzu smluvních podmínek a skrytých reklam - Testování
+### Backend testování
+Při testování backendu je potřeba převážně testovat Core/Services. Z této oblasti bylo nejprve testováno to, co bylo kritické a zároveň ve stavu, ve kterém to bylo možné testovat.
+Pro testování backendu je potřeba prázdná databáze inicializovaná tak jak je v readme projektu, které se nachází v dev větvi.
+Testování probíhalo jako blackbox testing, není tedy obtížné přidat další podobné testy. Dosavadní testy jsou komentované a nejsou obtížné na pochopení.
+##### Testování dokumentů
+Testování dokumentů probíhá tak, že je nad prázdnou databází vytvořena množina dokumentů a admin, který je má přiřazené. Tyto dokumenty jsou nahrávány a získávány z databáze s cílem určit, zda jsou do databáze správně uloženy a zpětně navráceny.
+Toto testování bohužel neodhalí, pokud je dokument poškozen při přenosu. To je zapříčiněno sanitizací a úpravou daného dokumentu při nahrání do databáze.
+##### Testování uživatelů
+Testování uživatelů testuje všechny metody, které UserService systému poskytuje. Sem je zahrnuto vytváření, mazání, změna, změna hesla, přihlášení a získávání uživatelského účtu z databáze různými způsoby.
+Přihlášení je testováno jak na validní, tak nevalidní data, stejně tak vytváření a změna uživatele.
+##### Další možné testování
+Testování na které nevyšel čas, nebo nebylo dost dobře možné testovat dostatečně brzo.
+Jedná se o testování značek a anotace. Obě tyto třídy procházely změnami a bylo obtížné a časově neefektivní jim věnovat pozornost, kterou by si zasloužily.
+
+### Frontend testování
+Frontend testování probíhá na inicializované databázi. Automatické frontend testování probíhalo na stejném stroji, na kterém běžel server. 
+Část kódu v C# byla spouštěna klasickým způsobem. Frondend byl spouštěn příkazy
+```sh
+yarn
+yarn dev
+```
+Po spuštění obou částí bylo možné aplikaci automaticky testovat.
+Automatické testy probíhají pomocí nástroje Selenium. To simuluje uživatelské akce.
+Selenium použité na tyto testy využívalo prohlížeče Google Chrome a Mozilla Firefox.
+Opět, z časových důvodů nebylo možné automaticky otestovat vše, co by automaticky testováno být mělo.
+
+#### Testování přihlášení
+Testování automatického přihlášení probíhá stejným stylem, jako na backend. Jedná se o sérii testů, které mají ověřit, zda se může přihlásit uživatel se správnými uživatelskými údaji, a zároveň nemůže uživatel s těmi špatnými, případně jestli se přihlášený uživatel dostal na stránku, na kterou měl.
+Tyto testy naneštěstí jako jediné z této oblasti pracují s databází vytvořenou testama na backendu. Jedná se o defekt z vývoje aplikace, na který se zapomnělo a bylo by náročné jej nyní měnit z pohledu finalizace.
+
+#### Testování přesměrování
+Toto testování slouží k zajištění, aby anotátor neviděl administrátorské prostřední, ani tak že by se dokázal přesměrovat na stránky administrátora. Jelikož uživatele nepřesměrováváme, test kontroluje, zda element s obsahem stránky má nulové rozměry.
+Test by mohl být postavený rozumněji, ale svoji funkci ve stávající implementaci plní.
+
+#### Testování vytváření uživatele
+Protože v nástroji spousta elementů, které nejsou nahrané v DOM ve chvíli načtení stránky, selenium může mít problémy s jejich získáváním. Tento test funguje asi hlavně jako inspirace pro vytváření dalších testů, na které v projektu nevyzbyl čas.
+Test probíhá přihlášením administrátora, změnou stránku na seznam uživatelů a vytvořením uživatele ve vyskakujícím okně. Poslední krok je aktualizace stránky, získání všech uživatelů v tabulce uživatelů a zjištění, zda se uživatel úspěšně vytvořil.
+Tato testovací sada je rozšiřitelná na editaci a mazání úživatele.
+
+### Manuální testování
+Manuální testování je velkou součástí testování tohoto nástroje. Jedná se o testování, které bylo převážně aplikováno během dokončování projektu a jeho finalizace.
+Jednoduchý scénář pro takové testování se zaměřením na uživatele by mohl vypadat následovně:
+```sh
+Přihlásit se jako administrátor
+Vytvořit uživatele anotátora
+Odhlásit se
+Přihlásit se jako nový anotátor
+Odhlásit se
+Přihlásit se jako administrátor
+Změnit nového anotátora - jméno
+Změnit nového anotátora - příjmení
+Změnit nového anotátora - uživatelské jméno
+Změnit nového anotátora - jméno, příjmení i uživatelské jméno
+Změnit nového anotátora - heslo
+Odhlásit se
+Přihlásit se jako změněný anotátor
+Odhlásit se
+Přihlásit se jako administrátor
+Změnit měněného anotátora na administrátora
+Odhlásit se
+Přihlásit se jako nový administrátor (změněný anotátor)
+Zkusit vytvořit a editovat uživatele
+Smazat nového uživatele
+Odhlásit se
+Přihlásit se jako původní administrátor
+Změnit nového administrátora - jméno
+Změnit nového administrátora - příjmení
+Změnit nového administrátora - uživatelské jméno
+Změnit nového administrátora - jméno, příjmení i uživatelské jméno
+Změnit nového administrátora - heslo
+Odhlásit se
+Přihlásit se jako změněný administrátor
+Odhlásit se
+Přihlásit se jako původní administrátor
+Smazat nového administrátora
+Odhlásit se
+```
+Podobné scénáře lze napsat pro testování značek, dokumentů a anotace.
+Důležité při manuálním testování ale je dávat si pozor na detaily, které jsou strojově těžko odhalitelné, jako například velikost tlačítek, nebo intuitivnost a celková použitelnost aplikace.
\ No newline at end of file
diff --git a/Backend/BackendTesting/TagsManagementTesting.cs b/Backend/BackendTesting/TagsManagementTesting.cs
deleted file mode 100644
index 66581cb..0000000
--- a/Backend/BackendTesting/TagsManagementTesting.cs
+++ /dev/null
@@ -1,151 +0,0 @@
-﻿using Microsoft.VisualStudio.TestTools.UnitTesting;
-using Models.Enums;
-using Core.Entities;
-using Serilog;
-
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Microsoft.EntityFrameworkCore;
-using AutoMapper;
-using Core.MapperProfiles;
-using Core.Contexts;
-using Microsoft.Extensions.Configuration;
-using Models.Documents;
-using Core.Services;
-
-namespace BackendTesting
-{
-    [TestClass]
-    public class TagsManagementTesting
-    {
-        private static readonly IConfiguration configuration = new ConfigurationBuilder().Build();
-        public DatabaseContext ctx;
-        //public Core.Services.DocumentService.IDocumentService DS;
-        //public Core.Services.IUserService US;
-        public Core.Services.TagService.ITagService TS;
-        //public DocumentAddRequest docList;
-        public User user;
-
-        //constructor for testing tags and anotations
-        public TagsManagementTesting()
-        {
-            //creating new database
-            this.ctx = new DatabaseContext(configuration);
-            //this.DS = new Core.Services.DocumentService.DocumentServiceEF(this.ctx, TestingLogger.GetLogger(), TestingMapper.GetMapper());
-            //this.US = new UserServiceEF(this.ctx, TestingLogger.GetLogger(), TestingMapper.GetMapper());
-            this.TS = new Core.Services.TagService.TagServiceEF(ctx, TestingLogger.GetLogger(), TestingMapper.GetMapper());
-
-            AppContext.SetSwitch("Npgsql.EnableLegacyTimestampBehavior", true);
-
-            //ensure the database is fresh without unwanted users from previous testings
-            ctx.Database.EnsureDeleted();
-            ctx.Database.EnsureCreated();
-
-            //user = new() { Id = Guid.NewGuid(), Name = "aa", Surname = "aa", Password = "aa", Role = ERole.ADMINISTRATOR, Username = "aa" };
-            //ctx.Users.Add(user);
-            //ctx.SaveChanges();
-
-            //docList = MakeRequest();
-            //FillUsers();
-            //ctx.SaveChanges();
-        }
-
-        [TestMethod]
-        public void GetTagTree_Testing()
-        {
-            try
-            {
-                //var tagTree = TS.GetTagTree();
-                
-                //TODO - pridavat kategorie, tagy a podtagy
-                //kontrolovat zda jsou tam vsechny a spravne
-                //pripadne je zkusit odebirat (az budou na backendu doresene)
-
-
-
-            }
-            catch(Exception ex)
-            {
-                Assert.Fail("GetTagTree() failed on exception: " + ex);
-            }
-            
-
-
-        }
-
-
-
-
-
-
-
-
-        /*
-        private void FillUsers()
-        {
-            var userList = new List<User>();
-            userList.Add(new User() { Username = "aaa", Name = "aaa", Surname = "aaa", Password = "aaa", Role = Models.Enums.ERole.ANNOTATOR });
-            userList.Add(new User() { Username = "bbb", Name = "bbb", Surname = "bbb", Password = "bbb", Role = Models.Enums.ERole.ANNOTATOR });
-            userList.Add(new User() { Username = "ccc", Name = "ccc", Surname = "ccc", Password = "ccc", Role = Models.Enums.ERole.ADMINISTRATOR });
-            userList.Add(new User() { Username = "ddd", Name = "ddd", Surname = "ddd", Password = "ddd", Role = Models.Enums.ERole.ANNOTATOR });
-            userList.Add(new User() { Username = "eee", Name = "eee", Surname = "eee", Password = "eee", Role = Models.Enums.ERole.ANNOTATOR });
-            userList.Add(new User() { Username = "fff", Name = "fff", Surname = "fff", Password = "fff", Role = Models.Enums.ERole.ANNOTATOR });
-            userList.Add(new User() { Username = "ggg", Name = "ggg", Surname = "ggg", Password = "ggg", Role = Models.Enums.ERole.ANNOTATOR });
-            userList.Add(new User() { Username = "hhh", Name = "hhh", Surname = "hhh", Password = "hhh", Role = Models.Enums.ERole.ADMINISTRATOR });
-            userList.Add(new User() { Username = "iii", Name = "iii", Surname = "iii", Password = "iii", Role = Models.Enums.ERole.ADMINISTRATOR });
-            userList.Add(new User() { Username = "jjj", Name = "jjj", Surname = "jjj", Password = "jjj", Role = Models.Enums.ERole.ADMINISTRATOR });
-
-            //filling up the database
-            foreach (var user in userList)
-            {
-                US.CreateUser(user.Username, user.Name, user.Surname, user.Password, user.Role);
-            }
-            ctx.SaveChanges();
-        }
-
-        private DocumentAddRequest MakeRequest()
-        {
-            docList = new DocumentAddRequest() { Documents = new() };
-            var dc = new DocumentContent();
-            string content = "aaa <html> bbb";
-            content = Convert.ToBase64String(Encoding.UTF8.GetBytes(content));
-            dc.Content = content;
-            var dt = new DateTime(2022, 4, 11);
-            DocumentAddInfo info = new DocumentAddInfo();
-            info.Name = "a";
-            info.Content = content;
-            info.Format = EAddDocumentFormat.TEXTFILE;
-            docList.Documents.Add(info);
-
-            content = "aaa <html> <xss> \n xdd<abc> nonvalid xml<tag>abc <tag2?> bbb";
-            dc.Content = content;
-            dt = new DateTime(2022, 4, 12);
-            docList.Documents.Add(new DocumentAddInfo() { Name = "b", Content = Convert.ToBase64String(Encoding.UTF8.GetBytes(content)), Format = EAddDocumentFormat.TEXTFILE });
-
-            content = "aaa <html> bbb aaa <html> <xss> \n xdd<abc> nonvalid xml<tag>abc <tag2?>" +
-                " bbb aaa <html> <xss> \n xdd<abc> nonvalid xml<tag>abc <tag2?> bbb aaa <html> <xss> \n xdd<abc>" +
-                " nonvalid xml<tag>abc <tag2?> bbb aaa <html> <xss> \n xdd<abc> nonvalid xml<tag>abc <tag2?> bbb aaa <html>" +
-                " <xss> \n xdd<abc> nonvalid xml<tag>abc <tag2?> bbb aaa <html> <xss> \n xdd<abc> nonvalid xml<tag>abc <tag2?>" +
-                " bbb aaa <html> <xss> \n xdd<abc> nonvalid xml<tag>abc <tag2?> bbb aaa <html> <xss> \n xdd<abc> nonvalid xml<tag>abc <tag2?> bbb ";
-            dc.Content = content;
-            dt = new DateTime(2022, 4, 13);
-            docList.Documents.Add(new DocumentAddInfo() { Name = "c", Content = Convert.ToBase64String(Encoding.UTF8.GetBytes(content)), Format = EAddDocumentFormat.TEXTFILE });
-
-            content = "aaa";
-            dc.Content = content;
-            dt = new DateTime(2022, 4, 14);
-            docList.Documents.Add(new DocumentAddInfo() { Name = "d", Content = Convert.ToBase64String(Encoding.UTF8.GetBytes(content)), Format = EAddDocumentFormat.TEXTFILE });
-
-            content = "aaa <html> edfgckvhbjno§mpoizuzcjtjczkutvlzibůuoni§piuoůbzivlutkczjxzcktuvlziůuoi§ouůizvlutckzxjzckguvl h.gjcutfgýíáéphuoůizltukridýžáflizv bbb";
-            dc.Content = content;
-            dt = new DateTime(2022, 4, 15);
-            docList.Documents.Add(new DocumentAddInfo() { Name = "e", Content = Convert.ToBase64String(Encoding.UTF8.GetBytes(content)), Format = EAddDocumentFormat.TEXTFILE });
-
-            return docList;
-        }
-        */
-    }
-}
diff --git a/Backend/BackendTesting/UserManagementTesting.cs b/Backend/BackendTesting/UserManagementTesting.cs
index 7c8d54e..a7dd85e 100644
--- a/Backend/BackendTesting/UserManagementTesting.cs
+++ b/Backend/BackendTesting/UserManagementTesting.cs
@@ -27,7 +27,7 @@ namespace BackendTesting
         private static readonly IConfiguration configuration = new ConfigurationBuilder().Build();
         public DatabaseContext ctx;
         public Core.Services.IUserService US;
-        
+
         //constructor for creating database and filling it with dummy data
         public UserManagementTesting()
         {
@@ -87,7 +87,7 @@ namespace BackendTesting
             }
 
             //check for empty atributes
-            if((username == null || username == "")&& output!=null)
+            if ((username == null || username == "") && output != null)
             {
                 Assert.Fail("user with no username created");
                 return;
@@ -184,7 +184,7 @@ namespace BackendTesting
         {
             //new user creation
             User? newUser = US.CreateUser(oldUsername, oldName, oldSurname, password, oldRole);
-            if(newUser == null)
+            if (newUser == null)
             {
                 Assert.Fail("user not created (maybe already user username?)");
             }
@@ -204,11 +204,11 @@ namespace BackendTesting
         [DataRow("bbb", "")]//set to none password
         [DataRow("eee", "eee")]//keep old password
         //test of changing password
-        public void ChangePassword_Test(string username, string newPassword) 
+        public void ChangePassword_Test(string username, string newPassword)
         {
             //get user using GetUserByUsername
             User? changingUser = US.GetUserByUsername(username);
-            if(changingUser == null)
+            if (changingUser == null)
             {
                 Assert.Fail("user not found");
                 return;
@@ -244,11 +244,11 @@ namespace BackendTesting
 
                 Assert.AreNotEqual(oldPassword, renewedPassword, "password was not changed or it was changed on same value");
             }
-            catch(Exception ex)
+            catch (Exception ex)
             {
-                if (newPassword == null || newPassword == "") Assert.IsTrue(true,"Try to change password on empty resulted in exception - expected and wanted outcome");
+                if (newPassword == null || newPassword == "") Assert.IsTrue(true, "Try to change password on empty resulted in exception - expected and wanted outcome");
             }
-            
+
 
         }
         [TestMethod]
@@ -259,14 +259,14 @@ namespace BackendTesting
         public void CheckUsernamePassword_Correct(string username, string password)
         {
             User? checkedUser = US.CheckUsernamePassword(username, password);
-            if(checkedUser == null)
+            if (checkedUser == null)
             {
                 //there are just correct users - this should have returned user
                 Assert.Fail("there are just correct users - this should have returned user");
                 return;
             }
             User? expected = US.GetUserByUsername(username);
-            if(expected == null)
+            if (expected == null)
             {
                 Assert.Fail("There is mistake in tested data");
                 return;
@@ -299,7 +299,7 @@ namespace BackendTesting
         {
             //get user from database
             User? oldUser = US.CheckUsernamePassword(username, oldPassword);
-            if (oldUser == null) 
+            if (oldUser == null)
             {
                 Assert.Fail("This should have returned user - there are wrong input data or CheckUsernamePassword isnt working properly");
                 return;
@@ -314,7 +314,7 @@ namespace BackendTesting
             }
             //check if new password is in place
             User? newUser = US.CheckUsernamePassword(username, newPassword);
-            if(newUser == null)
+            if (newUser == null)
             {
                 Assert.Fail("No user was returned - password probably wasnt changed");
             }
@@ -325,7 +325,7 @@ namespace BackendTesting
 
             //check if there is no way to login with old password
             User? oldPasswordTester = US.CheckUsernamePassword(username, oldPassword);
-            if(oldPasswordTester != null)
+            if (oldPasswordTester != null)
             {
                 Assert.Fail("old password is still viable after password change");
             }
diff --git a/Backend/FrontendTesting/LinksTesting.cs b/Backend/FrontendTesting/LinksTesting.cs
index 05505d9..02e6068 100644
--- a/Backend/FrontendTesting/LinksTesting.cs
+++ b/Backend/FrontendTesting/LinksTesting.cs
@@ -21,8 +21,8 @@ namespace FrontendTesting
         public By usernameField = By.Id("login_username");
         public By passwordField = By.Id("login_password");
         public By loginButton = By.XPath("/html/body/div[1]/div/div/div[2]/main/form/div[3]/div/div/div/button");
-        public string[] usernames = { "admin", "annotator1"};
-        public string[] passwords = { "admin", "password"};
+        public string[] usernames = { "admin", "annotator1" };
+        public string[] passwords = { "admin", "password" };
         public By shouldBeEmpty = By.Id("__next");
         //urls 0-4 are for admin only, url 5 is for annotator only
         public string[] urls = { "http://localhost:3000/documents/admin", "http://localhost:3000/users", "http://localhost:3000/tags", "http://localhost:3000/classes", "http://localhost:3000/export", "http://localhost:3000/documents/annotator" };
@@ -39,7 +39,7 @@ namespace FrontendTesting
         public void Login_User(string username, string password, bool driverChrome)
         {
             IWebDriver driver;
-            if(driverChrome) driver= Drivers.cDriver;
+            if (driverChrome) driver = Drivers.cDriver;
             else driver = Drivers.fDriver;
             driver.Navigate().GoToUrl(url);
             Thread.Sleep(1000);
diff --git a/Backend/FrontendTesting/LoginTesting.cs b/Backend/FrontendTesting/LoginTesting.cs
index cbf89a6..a92a3c9 100644
--- a/Backend/FrontendTesting/LoginTesting.cs
+++ b/Backend/FrontendTesting/LoginTesting.cs
@@ -23,7 +23,7 @@ namespace FrontendTesting
         public By loginButton = By.XPath("/html/body/div[1]/div/div/div[2]/main/form/div[3]/div/div/div/button");
         public By userButton = By.XPath("/html/body/div[1]/div/div[1]/ul/li[2]/div/span");
         public By logoutButton = By.XPath("/html/body/div[3]/div/div/ul/li/span");
-        public string[] usernames = { "aaa", "bbb", "ccc"};
+        public string[] usernames = { "aaa", "bbb", "ccc" };
         public string[] passwords = { "aaa", "bbb", "ccc" };
 
 
@@ -59,7 +59,7 @@ namespace FrontendTesting
         public void Login_Correct_Annotator_Firefox()
         {
             var driver = new FirefoxDriver();
-            driver.Navigate().GoToUrl(url);                                      
+            driver.Navigate().GoToUrl(url);
             Thread.Sleep(3000);
             driver.FindElement(usernameField).SendKeys(usernames[0]);           //enter username
             driver.FindElement(passwordField).SendKeys(passwords[0]);           //enter password
@@ -74,7 +74,7 @@ namespace FrontendTesting
         public void Login_Correct_Admin_Firefox()
         {
             var driver = new FirefoxDriver();
-            driver.Navigate().GoToUrl(url);                              
+            driver.Navigate().GoToUrl(url);
             Thread.Sleep(3000);
             driver.FindElement(usernameField).SendKeys(usernames[2]);          //enter username
             driver.FindElement(passwordField).SendKeys(passwords[2]);          //enter password
@@ -89,7 +89,7 @@ namespace FrontendTesting
         public void Login_Correct_Annotator_Chrome()
         {
             var driver = new ChromeDriver();
-            driver.Navigate().GoToUrl(url);                              
+            driver.Navigate().GoToUrl(url);
             Thread.Sleep(3000);
             driver.FindElement(usernameField).SendKeys(usernames[0]);          //enter username
             driver.FindElement(passwordField).SendKeys(passwords[0]);          //enter password
@@ -104,7 +104,7 @@ namespace FrontendTesting
         public void Login_Correct_Admin_Chrome()
         {
             var driver = new ChromeDriver();
-            driver.Navigate().GoToUrl(url);                              
+            driver.Navigate().GoToUrl(url);
             Thread.Sleep(3000);
             driver.FindElement(usernameField).SendKeys(usernames[2]);          //enter username
             driver.FindElement(passwordField).SendKeys(passwords[2]);          //enter password
@@ -121,7 +121,7 @@ namespace FrontendTesting
         public void Login_Incorrect_Annotator_Firefox()
         {
             var driver = new FirefoxDriver();
-            driver.Navigate().GoToUrl(url);                             
+            driver.Navigate().GoToUrl(url);
             Thread.Sleep(3000);
             driver.FindElement(usernameField).SendKeys(usernames[0]);          //enter username
             driver.FindElement(passwordField).SendKeys("abc");          //enter password
@@ -136,7 +136,7 @@ namespace FrontendTesting
         public void Login_Incorrect_Admin_Firefox()
         {
             var driver = new FirefoxDriver();
-            driver.Navigate().GoToUrl(url);                              
+            driver.Navigate().GoToUrl(url);
             Thread.Sleep(3000);
             driver.FindElement(usernameField).SendKeys(usernames[2]);          //enter username
             driver.FindElement(passwordField).SendKeys("abc");          //enter password
@@ -151,7 +151,7 @@ namespace FrontendTesting
         public void Login_Incorrect_Annotator_Chrome()
         {
             var driver = new ChromeDriver();
-            driver.Navigate().GoToUrl(url);                              
+            driver.Navigate().GoToUrl(url);
             Thread.Sleep(3000);
             driver.FindElement(usernameField).SendKeys(usernames[0]);          //enter username
             driver.FindElement(passwordField).SendKeys("abc");          //enter password
@@ -165,8 +165,8 @@ namespace FrontendTesting
         [TestMethod]
         public void Login_Incorrect_Admin_Chrome()
         {
-            var driver = new ChromeDriver(); 
-            driver.Navigate().GoToUrl(url);                              
+            var driver = new ChromeDriver();
+            driver.Navigate().GoToUrl(url);
             Thread.Sleep(3000);
             driver.FindElement(usernameField).SendKeys(usernames[2]);          //enter username
             driver.FindElement(passwordField).SendKeys("abc");          //enter password
@@ -181,7 +181,7 @@ namespace FrontendTesting
         public void Login_EmptyUsername_Firefox()
         {
             var driver = new FirefoxDriver();
-            driver.Navigate().GoToUrl(url);                              
+            driver.Navigate().GoToUrl(url);
             Thread.Sleep(3000);
             driver.FindElement(usernameField).SendKeys("");          //enter username
             driver.FindElement(passwordField).SendKeys("abc");          //enter password
@@ -196,7 +196,7 @@ namespace FrontendTesting
         public void Login_EmptyUsername_Chrome()
         {
             var driver = new ChromeDriver();
-            driver.Navigate().GoToUrl(url);                              
+            driver.Navigate().GoToUrl(url);
             Thread.Sleep(3000);
             driver.FindElement(usernameField).SendKeys("");          //enter username
             driver.FindElement(passwordField).SendKeys("abc");          //enter password
@@ -211,7 +211,7 @@ namespace FrontendTesting
         public void Login_EmptyPassword_Firefox()
         {
             var driver = new FirefoxDriver();
-            driver.Navigate().GoToUrl(url);                              
+            driver.Navigate().GoToUrl(url);
             Thread.Sleep(3000);
             driver.FindElement(usernameField).SendKeys(usernames[0]);          //enter username
             driver.FindElement(passwordField).SendKeys("");          //enter password
@@ -226,7 +226,7 @@ namespace FrontendTesting
         public void Login_EmptyPassword_Chrome()
         {
             var driver = new ChromeDriver();
-            driver.Navigate().GoToUrl(url);                              
+            driver.Navigate().GoToUrl(url);
             Thread.Sleep(3000);
             driver.FindElement(usernameField).SendKeys(usernames[0]);          //enter username
             driver.FindElement(passwordField).SendKeys("");          //enter password
diff --git a/Backend/FrontendTesting/UserManagementTesting.cs b/Backend/FrontendTesting/UserManagementTesting.cs
index afd9518..d2a1ba9 100644
--- a/Backend/FrontendTesting/UserManagementTesting.cs
+++ b/Backend/FrontendTesting/UserManagementTesting.cs
@@ -49,14 +49,15 @@ namespace FrontendTesting
         [DataRow(true, "ggg", "ggg", "", "ggg")]
         [DataRow(false, "hhh", "hhh", "", "hhh")]
         [DataRow(true, "iii", "iii", "iii", "")]
-        [DataRow(false, "jjj", "jjj", "jjj", "")]*/
+        [DataRow(false, "jjj", "jjj", "jjj", "")]
+        there were some problems with multiple tests runs*/
         [TestMethod]
         [DataRow(false, "aaa", "aaa", "aaa", "aaa")]
         public void CreateUser(bool isAdmin, string Username, string Name, string Surname, string Password)
         {
             var driver = new ChromeDriver();
             WebDriverWait w = new WebDriverWait(driver, TimeSpan.FromSeconds(5));
-            
+
             if (!Login(driver)) Assert.Fail("Login failed");
             driver.Manage().Window.Maximize();
             //Thread.Sleep(1000);
@@ -66,7 +67,7 @@ namespace FrontendTesting
             //popup handling
             string currentHandle = driver.CurrentWindowHandle;
             ReadOnlyCollection<string> originalHandles = driver.WindowHandles;
-            
+
             //popup window actions
             if (isAdmin)
             {
@@ -83,21 +84,21 @@ namespace FrontendTesting
 
             driver.Navigate().Refresh();
 
-            
+
             //Here should be new user in database if creditals were valid
             var table = getTable(driver);
             bool found = false;
             string nm, srnm, usrnm, rl, dcks;
-            for(int i = 0; i < table.Count-5; i+=6)
+            for (int i = 0; i < table.Count - 5; i += 6)
             {
-                nm= table[i];
-                srnm= table[i+1];
-                usrnm= table[i+2];
+                nm = table[i];
+                srnm = table[i + 1];
+                usrnm = table[i + 2];
                 //rl= table[i+3];
                 //dcks= table[i+4];
                 if (nm == Name && srnm == Surname && usrnm == Username) found = true;
             }
-            if(Username!="" || Password != "" || Name!="" || Surname!="")
+            if (Username != "" || Password != "" || Name != "" || Surname != "")
             {
                 //valid creditals - user should be in db
                 Assert.IsTrue(found, "There should be new user but he was not found.");
@@ -108,14 +109,14 @@ namespace FrontendTesting
                 //invalids creditals - user shouldnt be in db
                 Assert.IsFalse(found, "There should NOT be new user but he was found in the table. ");
             }
-            driver.Navigate().GoToUrl(url);            
+            driver.Navigate().GoToUrl(url);
             driver.Close();
             driver.Quit();
         }
 
 
 
-
+        //getting table of users from page for comparison if there is/is not user there should/should not be
         private List<string> getTable(IWebDriver driver)
         {
             List<string> cont = new List<string>();
@@ -128,6 +129,7 @@ namespace FrontendTesting
             return cont;
         }
 
+        //easy login to run on start of the test
         private bool Login(IWebDriver driver)
         {
             driver.Navigate().GoToUrl(url);
diff --git a/Backend/FrontendTesting/Utils.cs b/Backend/FrontendTesting/Utils.cs
index 4c81882..11fe90d 100644
--- a/Backend/FrontendTesting/Utils.cs
+++ b/Backend/FrontendTesting/Utils.cs
@@ -14,12 +14,12 @@ namespace FrontendTesting
 {
     public class Utils
     {
-        
+
     }
 
     public static class Drivers
     {
-        
+
         public static IWebDriver fDriver = new FirefoxDriver();
         public static IWebDriver cDriver = new ChromeDriver();
         public static IWebDriver[] drivers = { fDriver, cDriver };
