aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/unit/testDocument.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'test/unit/testDocument.cxx')
-rw-r--r--test/unit/testDocument.cxx59
1 files changed, 59 insertions, 0 deletions
diff --git a/test/unit/testDocument.cxx b/test/unit/testDocument.cxx
new file mode 100644
index 000000000..983074daf
--- /dev/null
+++ b/test/unit/testDocument.cxx
@@ -0,0 +1,59 @@
+/** @file testDocument.cxx
+ ** Unit Tests for Scintilla internal data structures
+ **/
+
+#include <cstddef>
+#include <cstring>
+#include <stdexcept>
+#include <string_view>
+#include <vector>
+#include <optional>
+#include <algorithm>
+#include <memory>
+
+#include "ScintillaTypes.h"
+
+#include "ILoader.h"
+#include "ILexer.h"
+
+#include "Debugging.h"
+
+#include "CharacterCategoryMap.h"
+#include "Position.h"
+#include "SplitVector.h"
+#include "Partitioning.h"
+#include "RunStyles.h"
+#include "CellBuffer.h"
+#include "CharClassify.h"
+#include "Decoration.h"
+#include "CaseFolder.h"
+#include "Document.h"
+
+#include "catch.hpp"
+
+using namespace Scintilla;
+using namespace Scintilla::Internal;
+
+// Test Document.
+
+TEST_CASE("Document") {
+
+ const char sText[] = "Scintilla";
+ const Sci::Position sLength = static_cast<Sci::Position>(strlen(sText));
+
+ Document doc(DocumentOption::Default);
+
+ SECTION("InsertOneLine") {
+ const Sci::Position length = doc.InsertString(0, sText, sLength);
+ REQUIRE(sLength == doc.Length());
+ REQUIRE(length == sLength);
+ REQUIRE(1 == doc.LinesTotal());
+ REQUIRE(0 == doc.LineStart(0));
+ REQUIRE(0 == doc.LineFromPosition(0));
+ REQUIRE(sLength == doc.LineStart(1));
+ REQUIRE(0 == doc.LineFromPosition(static_cast<int>(sLength)));
+ REQUIRE(doc.CanUndo());
+ REQUIRE(!doc.CanRedo());
+ }
+
+}