diff --git a/tests/leaf_editing.cpp b/tests/leaf_editing.cpp
index ab5e6bd..d7703c0 100644
--- a/tests/leaf_editing.cpp
+++ b/tests/leaf_editing.cpp
@@ -58,32 +58,48 @@
     {
         set_ expected;
 
-        SECTION("set mod:leafString some_data")
+        SECTION("set mod:leafString \"some_data\"")
         {
-            input = "set mod:leafString some_data";
+            input = "set mod:leafString \'some_data\'";
             expected.m_path.m_nodes.push_back(dataNode_{module_{"mod"}, leaf_("leafString")});
             expected.m_data = std::string("some_data");
         }
 
-        SECTION("set mod:contA/leafInCont more_data")
+        SECTION("set mod:contA/leafInCont 'more_data'")
         {
-            input = "set mod:contA/leafInCont more_data";
+            input = "set mod:contA/leafInCont 'more_data'";
             expected.m_path.m_nodes.push_back(dataNode_{module_{"mod"}, container_("contA")});
             expected.m_path.m_nodes.push_back(dataNode_{leaf_("leafInCont")});
             expected.m_data = std::string("more_data");
         }
 
-        SECTION("set mod:contA/leafInCont   more   d\tata") // spaces in string
+        SECTION("set mod:contA/leafInCont \"data with' a quote\"")
         {
-            input = "set mod:contA/leafInCont more   d\tata";
+            input = "set mod:contA/leafInCont \"data with' a quote\"";
+            expected.m_path.m_nodes.push_back(dataNode_{module_{"mod"}, container_("contA")});
+            expected.m_path.m_nodes.push_back(dataNode_{leaf_("leafInCont")});
+            expected.m_data = std::string("data with' a quote");
+        }
+
+        SECTION("set mod:contA/leafInCont 'data with\" a quote'")
+        {
+            input = "set mod:contA/leafInCont 'data with\" a quote'";
+            expected.m_path.m_nodes.push_back(dataNode_{module_{"mod"}, container_("contA")});
+            expected.m_path.m_nodes.push_back(dataNode_{leaf_("leafInCont")});
+            expected.m_data = std::string("data with\" a quote");
+        }
+
+        SECTION("set mod:contA/leafInCont   'more   d\tata'") // spaces in string
+        {
+            input = "set mod:contA/leafInCont 'more   d\tata'";
             expected.m_path.m_nodes.push_back(dataNode_{module_{"mod"}, container_("contA")});
             expected.m_path.m_nodes.push_back(dataNode_{leaf_("leafInCont")});
             expected.m_data = std::string("more   d\tata");
         }
 
-        SECTION("set mod:list[number=1]/leafInList another_data")
+        SECTION("set mod:list[number=1]/leafInList \"another_data\"")
         {
-            input = "set mod:list[number=1]/leafInList another_data";
+            input = "set mod:list[number=1]/leafInList \"another_data\"";
             auto keys = std::map<std::string, std::string>{
                 {"number", "1"}};
             expected.m_path.m_nodes.push_back(dataNode_{module_{"mod"}, listElement_("list", keys)});
@@ -95,7 +111,7 @@
         {
             SECTION("string")
             {
-                input = "set mod:leafString somedata";
+                input = "set mod:leafString \"somedata\"";
                 expected.m_path.m_nodes.push_back(dataNode_{module_{"mod"}, leaf_("leafString")});
                 expected.m_data = std::string("somedata");
             }
@@ -285,7 +301,7 @@
             {
                 SECTION("refToString")
                 {
-                    input = "set mod:refToString blabal";
+                    input = "set mod:refToString \"blabal\"";
                     expected.m_path.m_nodes.push_back(dataNode_{module_{"mod"}, leaf_("refToString")});
                     expected.m_data = std::string("blabal");
                 }
@@ -311,85 +327,85 @@
         {
             SECTION("setmod:leafString some_data")
             {
-                input = "setmod:leafString some_data";
+                input = "setmod:leafString 'some_data'";
             }
         }
 
         SECTION("missing space between arguments")
         {
-            SECTION("set mod:leafStringlol")
+            SECTION("set mod:leafString'lol'")
             {
-                input = "set mod:leafStringlol";
+                input = "set mod:leafString'lol'";
             }
         }
 
         SECTION("non-leaf identifiers")
         {
-            SECTION("set mod:nonexistent blabla")
+            SECTION("set mod:nonexistent 'blabla'")
             {
-                input = "set mod:nonexistent blabla";
+                input = "set mod:nonexistent 'blabla'";
             }
 
-            SECTION("set mod:contA abde")
+            SECTION("set mod:contA 'abde'")
             {
-                input = "set mod:contA abde";
+                input = "set mod:contA 'abde'";
             }
         }
 
         SECTION("wrong types")
         {
             expectedError = "leaf data type mismatch";
-            SECTION("set mod:leafBool blabla")
+            SECTION("set mod:leafBool 'blabla'")
             {
-                input = "set mod:leafBool blabla";
+                input = "set mod:leafBool 'blabla'";
             }
-            SECTION("set mod:leafUint8 blabla")
+            SECTION("set mod:leafUint8 'blabla'")
             {
-                input = "set mod:leafUint8 blabla";
+                input = "set mod:leafUint8 'blabla'";
             }
             SECTION("set mod:leafUint8 -5")
             {
                 input = "set mod:leafUint8 -5";
             }
-            SECTION("set mod:leafInt8 blabla")
+            SECTION("set mod:leafInt8 'blabla'")
             {
-                input = "set mod:leafInt8 blabla";
+                input = "set mod:leafInt8 'blabla'";
             }
             SECTION("set mod:leafInt8 130")
             {
                 input = "set mod:leafInt8 130";
             }
-            SECTION("set mod:leafUint16 blabla")
+            SECTION("set mod:leafUint16 'blabla'")
             {
-                input = "set mod:leafUint16 blabla";
+                input = "set mod:leafUint16 'blabla'";
             }
-            SECTION("set mod:leafInt16 blabla")
+            SECTION("set mod:leafInt16 'blabla'")
             {
-                input = "set mod:leafInt16 blabla";
+                input = "set mod:leafInt16 'blabla'";
             }
-            SECTION("set mod:leafUint32 blabla")
+            SECTION("set mod:leafUint32 'blabla'")
             {
-                input = "set mod:leafUint32 blabla";
+                input = "set mod:leafUint32 'blabla'";
             }
-            SECTION("set mod:leafInt32 blabla")
+            SECTION("set mod:leafInt32 'blabla'")
             {
-                input = "set mod:leafInt32 blabla";
+                input = "set mod:leafInt32 'blabla'";
             }
-            SECTION("set mod:leafUint64 blabla")
+            SECTION("set mod:leafUint64 'blabla'")
             {
-                input = "set mod:leafUint64 blabla";
+                input = "set mod:leafUint64 'blabla'";
             }
-            SECTION("set mod:leafInt64 blabla")
+            SECTION("set mod:leafInt64 'blabla'")
             {
-                input = "set mod:leafInt64 blabla";
+                input = "set mod:leafInt64 'blabla'";
             }
-            SECTION("set mod:leafEnum blabla")
+            SECTION("set mod:leafEnum 'blabla'")
             {
-                input = "set mod:leafEnum blabla";
+                input = "set mod:leafEnum 'blabla'";
             }
-            SECTION("set mod:refToInt8 blabla")
+            SECTION("set mod:refToInt8 'blabla'")
             {
-                input = "set mod:refToInt8 blabla";
+                input = "set mod:refToInt8 'blabla'";
             }
         }
 
@@ -399,6 +415,8 @@
                 input = "set mod:leafBinary dbahj-";
             SECTION("equal sign in the middle")
                 input = "set mod:leafBinary db=ahj";
+            SECTION("enclosing in quotes")
+                input = "set mod:leafBinary 'dbahj'";
         }
 
         SECTION("non-existing identity")
