|
@@ -124,23 +124,6 @@ Some other text
|
|
|
(org-element-set-contents (org-element-map tree 'bold 'identity nil t))
|
|
|
(org-element-contents (org-element-map tree 'bold 'identity nil t))))))
|
|
|
|
|
|
-(ert-deftest test-org-element/set-element ()
|
|
|
- "Test `org-element-set-element' specifications."
|
|
|
- (org-test-with-temp-text "* Headline\n*a*"
|
|
|
- (let ((tree (org-element-parse-buffer)))
|
|
|
- (org-element-set-element
|
|
|
- (org-element-map tree 'bold 'identity nil t)
|
|
|
- '(italic nil "b"))
|
|
|
- ;; Check if object is correctly replaced.
|
|
|
- (should (org-element-map tree 'italic 'identity))
|
|
|
- (should-not (org-element-map tree 'bold 'identity))
|
|
|
- ;; Check if new object's parent is correctly set.
|
|
|
- (should
|
|
|
- (eq
|
|
|
- (org-element-property :parent
|
|
|
- (org-element-map tree 'italic 'identity nil t))
|
|
|
- (org-element-map tree 'paragraph 'identity nil t))))))
|
|
|
-
|
|
|
(ert-deftest test-org-element/secondary-p ()
|
|
|
"Test `org-element-secondary-p' specifications."
|
|
|
;; In a secondary string, return property name.
|
|
@@ -251,6 +234,57 @@ Some other text
|
|
|
(org-element-map (org-element-property :title headline) '(entity italic)
|
|
|
#'org-element-type))))))
|
|
|
|
|
|
+(ert-deftest test-org-element/set-element ()
|
|
|
+ "Test `org-element-set-element' specifications."
|
|
|
+ ;; Check if new element is inserted.
|
|
|
+ (should
|
|
|
+ (org-test-with-temp-text "* Headline\n*a*"
|
|
|
+ (let* ((tree (org-element-parse-buffer))
|
|
|
+ (bold (org-element-map tree 'bold 'identity nil t)))
|
|
|
+ (org-element-set-element bold '(italic nil "b"))
|
|
|
+ (org-element-map tree 'italic 'identity))))
|
|
|
+ ;; Check if old element is removed.
|
|
|
+ (should-not
|
|
|
+ (org-test-with-temp-text "* Headline\n*a*"
|
|
|
+ (let* ((tree (org-element-parse-buffer))
|
|
|
+ (bold (org-element-map tree 'bold 'identity nil t)))
|
|
|
+ (org-element-set-element bold '(italic nil "b"))
|
|
|
+ (org-element-map tree 'bold 'identity))))
|
|
|
+ ;; Check if :parent property is correctly set.
|
|
|
+ (should
|
|
|
+ (eq 'paragraph
|
|
|
+ (org-test-with-temp-text "* Headline\n*a*"
|
|
|
+ (let* ((tree (org-element-parse-buffer))
|
|
|
+ (bold (org-element-map tree 'bold 'identity nil t)))
|
|
|
+ (org-element-set-element bold '(italic nil "b"))
|
|
|
+ (org-element-type
|
|
|
+ (org-element-property
|
|
|
+ :parent (org-element-map tree 'italic 'identity nil t)))))))
|
|
|
+ ;; Allow to replace strings with elements.
|
|
|
+ (should
|
|
|
+ (equal '("b")
|
|
|
+ (org-test-with-temp-text "* Headline"
|
|
|
+ (let* ((tree (org-element-parse-buffer))
|
|
|
+ (text (org-element-map tree 'plain-text 'identity nil t)))
|
|
|
+ (org-element-set-element text (list 'bold nil "b"))
|
|
|
+ (org-element-map tree 'plain-text 'identity)))))
|
|
|
+ ;; Allow to replace elements with strings.
|
|
|
+ (should
|
|
|
+ (equal "a"
|
|
|
+ (org-test-with-temp-text "* =verbatim="
|
|
|
+ (let* ((tree (org-element-parse-buffer))
|
|
|
+ (verb (org-element-map tree 'verbatim 'identity nil t)))
|
|
|
+ (org-element-set-element verb "a")
|
|
|
+ (org-element-map tree 'plain-text 'identity nil t)))))
|
|
|
+ ;; Allow to replace strings with strings.
|
|
|
+ (should
|
|
|
+ (equal "b"
|
|
|
+ (org-test-with-temp-text "a"
|
|
|
+ (let* ((tree (org-element-parse-buffer))
|
|
|
+ (text (org-element-map tree 'plain-text 'identity nil t)))
|
|
|
+ (org-element-set-element text "b")
|
|
|
+ (org-element-map tree 'plain-text 'identity nil t))))))
|
|
|
+
|
|
|
|
|
|
|
|
|
;;; Test Parsers
|