aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/unit/testDocument.cxx
diff options
context:
space:
mode:
authorZufu Liu <unknown>2021-06-21 13:34:23 +1000
committerZufu Liu <unknown>2021-06-21 13:34:23 +1000
commit5b3faa208ea29e45c6d845760bb902c3a9f057da (patch)
tree44b2c5eab8d575b55828916b9c060608e2dd8ffa /test/unit/testDocument.cxx
parentc728c19ed80302772be1c32c6c842aa30839c152 (diff)
downloadscintilla-mirror-5b3faa208ea29e45c6d845760bb902c3a9f057da.tar.gz
Add tests for CharacterCategoryMap, RESearch, and Document.
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());
+ }
+
+}