1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814 |
- (ert-deftest test-org/toggle-comment ()
- "Test `org-toggle-comment' specifications."
-
- (should
- (equal "* Test"
- (org-test-with-temp-text "* COMMENT Test"
- (org-toggle-comment)
- (buffer-string))))
- (should
- (equal "* COMMENT Test"
- (org-test-with-temp-text "* Test"
- (org-toggle-comment)
- (buffer-string))))
-
- (should
- (equal "* TODO Test"
- (org-test-with-temp-text "* TODO COMMENT Test"
- (org-toggle-comment)
- (buffer-string))))
- (should
- (equal "* TODO COMMENT Test"
- (org-test-with-temp-text "* TODO Test"
- (org-toggle-comment)
- (buffer-string))))
-
- (should
- (equal "* "
- (org-test-with-temp-text "* COMMENT"
- (org-toggle-comment)
- (buffer-string))))
- (should
- (equal "* COMMENT"
- (org-test-with-temp-text "* "
- (org-toggle-comment)
- (buffer-string))))
-
- (should
- (equal "* TODO "
- (org-test-with-temp-text "* TODO COMMENT"
- (org-toggle-comment)
- (buffer-string))))
- (should
- (equal "* TODO COMMENT"
- (org-test-with-temp-text "* TODO"
- (org-toggle-comment)
- (buffer-string))))
-
- (should
- (equal "* TODO [#A] Headline"
- (org-test-with-temp-text "* TODO [#A] COMMENT Headline"
- (org-toggle-comment)
- (buffer-string))))
- (should
- (equal "* TODO [#A] COMMENT Headline"
- (org-test-with-temp-text "* TODO [#A] Headline"
- (org-toggle-comment)
- (buffer-string)))))
- (ert-deftest test-org/comment-dwim ()
- "Test `comment-dwim' behaviour in an Org buffer."
-
-
- (should
- (equal "# \nComment"
- (org-test-with-temp-text "Comment"
- (progn (call-interactively 'comment-dwim)
- (buffer-string)))))
-
-
- (should
- (equal "# \nParagraph"
- (org-test-with-temp-text "\nParagraph"
- (progn (call-interactively 'comment-dwim)
- (buffer-string)))))
-
- (should
- (equal "* Headline\n # Comment"
- (org-test-with-temp-text "* Headline\n# Comment"
- (progn (forward-line)
- (let ((org-adapt-indentation t))
- (call-interactively 'comment-dwim))
- (buffer-string)))))
-
- (should
- (equal "# Comment"
- (org-test-with-temp-text "# Comment"
- (progn (forward-line)
- (call-interactively 'comment-dwim)
- (buffer-string)))))
-
-
- (should
- (equal "Comment 1\n\nComment 2"
- (org-test-with-temp-text "# Comment 1\n\n# Comment 2"
- (progn
- (transient-mark-mode 1)
- (push-mark (point) t t)
- (goto-char (point-max))
- (call-interactively 'comment-dwim)
- (buffer-string)))))
-
-
- (should
- (equal "# Comment 1\n\n# Comment 2"
- (org-test-with-temp-text "Comment 1\n\nComment 2"
- (progn
- (transient-mark-mode 1)
- (push-mark (point) t t)
- (goto-char (point-max))
- (let ((-empty-lines nil))
- (call-interactively 'comment-dwim))
- (buffer-string)))))
- (should
- (equal "# Comment 1\n# \n# Comment 2"
- (org-test-with-temp-text "Comment 1\n\nComment 2"
- (progn
- (transient-mark-mode 1)
- (push-mark (point) t t)
- (goto-char (point-max))
- (let ((-empty-lines t))
- (call-interactively 'comment-dwim))
- (buffer-string)))))
-
- (should
- (equal "# \n#+KEYWORD: value"
- (org-test-with-temp-text "#+KEYWORD: value"
- (progn (call-interactively 'comment-dwim)
- (buffer-string)))))
-
- (should
- (equal " ;; "
- (org-test-with-temp-text "#+BEGIN_SRC emacs-lisp\n\n#+END_SRC"
- (forward-line)
- (let ((org-edit-src-content-indentation 2))
- (call-interactively 'comment-dwim))
- (buffer-substring-no-properties (line-beginning-position) (point)))))
- (should
- (equal "#+BEGIN_SRC emacs-lisp\n ;; a\n ;; b\n#+END_SRC"
- (org-test-with-temp-text "#+BEGIN_SRC emacs-lisp\na\nb\n#+END_SRC"
- (forward-line)
- (transient-mark-mode 1)
- (push-mark (point) t t)
- (forward-line 2)
- (let ((org-edit-src-content-indentation 2))
- (call-interactively 'comment-dwim))
- (buffer-string)))))
- (ert-deftest test-org/org-read-date ()
- "Test `org-read-date' specifications."
-
- (should (equal "2012-03-29 16:40"
- (let ((org-time-was-given t))
- (org-read-date t nil "12-3-29 16:40"))))
-
- (should (equal "2012-03-29 16:40"
- (let ((org-time-was-given t))
- (org-read-date t nil "29.03.2012 16:40"))))
-
- (should (string-match "2[0-9]\\{3\\}-03-29 16:40"
- (let ((org-time-was-given t))
- (org-read-date t nil "29.03. 16:40"))))
-
-
- (should
- (equal
- "2015-03-04"
- (flet ((current-time () (apply #'encode-time
- (org-parse-time-string "2014-03-04"))))
- (org-read-date
- t nil "+1y" nil
- (apply #'encode-time (org-parse-time-string "2012-03-29"))))))
- (should
- (equal
- "2013-03-29"
- (flet ((current-time () (apply #'encode-time
- (org-parse-time-string "2014-03-04"))))
- (org-read-date
- t nil "++1y" nil
- (apply #'encode-time (org-parse-time-string "2012-03-29"))))))
-
-
-
- (should
- (equal
- "2014-04-01"
- (flet ((current-time () (apply #'encode-time
- (org-parse-time-string "2014-03-04"))))
- (let ((org-read-date-prefer-future t))
- (org-read-date t nil "1")))))
- (should
- (equal
- "2013-03-04"
- (flet ((current-time () (apply #'encode-time
- (org-parse-time-string "2012-03-29"))))
- (let ((org-read-date-prefer-future t))
- (org-read-date t nil "3-4")))))
- (should
- (equal
- "2012-03-04"
- (flet ((current-time () (apply #'encode-time
- (org-parse-time-string "2012-03-29"))))
- (let ((org-read-date-prefer-future nil))
- (org-read-date t nil "3-4")))))
-
-
-
-
- (should
- (equal
- "2012-03-30"
- (flet ((current-time () (apply #'encode-time
- (org-parse-time-string "2012-03-29 16:40"))))
- (let ((org-read-date-prefer-future 'time))
- (org-read-date t nil "00:40" nil)))))
- (should-not
- (equal
- "2012-03-30"
- (flet ((current-time () (apply #'encode-time
- (org-parse-time-string "2012-03-29 16:40"))))
- (let ((org-read-date-prefer-future 'time))
- (org-read-date t nil "29 00:40" nil)))))
-
-
- (should
- (equal
- "2014-04-01"
- (flet ((current-time
- () (apply #'encode-time (org-parse-time-string "2014-03-04"))))
- (let ((org-read-date-prefer-future t))
- (org-read-date
- t nil "1" nil
- (apply #'encode-time (org-parse-time-string "2012-03-29")))))))
- (should
- (equal
- "2014-03-25"
- (flet ((current-time
- () (apply #'encode-time (org-parse-time-string "2014-03-04"))))
- (let ((org-read-date-prefer-future t))
- (org-read-date
- t nil "25" nil
- (apply #'encode-time (org-parse-time-string "2012-03-29"))))))))
- (ert-deftest test-org/org-parse-time-string ()
- "Test `org-parse-time-string'."
- (should (equal (org-parse-time-string "2012-03-29 16:40")
- '(0 40 16 29 3 2012 nil nil nil)))
- (should (equal (org-parse-time-string "[2012-03-29 16:40]")
- '(0 40 16 29 3 2012 nil nil nil)))
- (should (equal (org-parse-time-string "<2012-03-29 16:40>")
- '(0 40 16 29 3 2012 nil nil nil)))
- (should (equal (org-parse-time-string "<2012-03-29>")
- '(0 0 0 29 3 2012 nil nil nil)))
- (should (equal (org-parse-time-string "<2012-03-29>" t)
- '(0 nil nil 29 3 2012 nil nil nil))))
- (ert-deftest test-org/insert-property-drawer ()
- "Test `org-insert-property-drawer' specifications."
-
- (should-error (org-test-with-temp-text "" (org-insert-property-drawer)))
-
-
- (should
- (equal "* H\n:PROPERTIES:\n:END:\nParagraph"
- (org-test-with-temp-text "* H\nParagraph<point>"
- (let ((org-adapt-indentation nil)) (org-insert-property-drawer))
- (buffer-string))))
- (should
- (equal "* H\nDEADLINE: <2014-03-04 tue.>\n:PROPERTIES:\n:END:\nParagraph"
- (org-test-with-temp-text
- "* H\nDEADLINE: <2014-03-04 tue.>\nParagraph<point>"
- (let ((org-adapt-indentation nil)) (org-insert-property-drawer))
- (buffer-string))))
-
- (should
- (equal "* H\n :PROPERTIES:\n :END:\nParagraph"
- (org-test-with-temp-text "* H\nParagraph<point>"
- (let ((org-adapt-indentation t)) (org-insert-property-drawer))
- (buffer-string))))
-
- (should
- (equal "* H\n:PROPERTIES:\n:END:\n"
- (org-test-with-temp-text "* H"
- (let ((org-adapt-indentation nil)) (org-insert-property-drawer))
- (buffer-string))))
-
- (when (featurep 'org-inlinetask)
- (should
- (equal "* H\n:PROPERTIES:\n:END:\n*************** I\n*************** END\nP"
- (org-test-with-temp-text
- "* H\n*************** I\n*************** END\nP<point>"
- (let ((org-adapt-indentation nil)
- (org-inlinetask-min-level 15))
- (org-insert-property-drawer))
- (buffer-string)))))
-
- (when (featurep 'org-inlinetask)
- (should
- (equal "* H\n*************** I\n:PROPERTIES:\n:END:\nP\n*************** END"
- (org-test-with-temp-text
- "* H\n*************** I\nP<point>\n*************** END"
- (let ((org-adapt-indentation nil)
- (org-inlinetask-min-level 15))
- (org-insert-property-drawer))
- (buffer-string))))))
- (ert-deftest test-org/fill-paragraph ()
- "Test `org-fill-paragraph' specifications."
-
- (should
- (equal "| a |\n"
- (org-test-with-temp-text "|a|"
- (org-fill-paragraph)
- (buffer-string))))
- (should
- (equal "#+name: table\n| a |\n"
- (org-test-with-temp-text "#+name: table\n| a |"
- (org-fill-paragraph)
- (buffer-string))))
-
- (org-test-with-temp-text "some \\\\\nlong\ntext"
- (let ((fill-column 20))
- (org-fill-paragraph)
- (should (equal (buffer-string) "some \\\\\nlong text"))))
-
- (should
- (equal "A B"
- (org-test-with-temp-text "A\nB"
- (let ((fill-column 20))
- (goto-char (point-max))
- (org-fill-paragraph)
- (buffer-string)))))
-
- (should
- (equal "#+BEGIN_CENTER\n- 012345\n 789\n#+END_CENTER"
- (org-test-with-temp-text "#+BEGIN_CENTER\n- 012345 789\n#+END_CENTER"
- (let ((fill-column 8))
- (forward-line)
- (end-of-line)
- (org-fill-paragraph)
- (buffer-string)))))
-
- (should
- (equal "01234\n6"
- (org-test-with-temp-text "01234 6789"
- (let ((fill-column 5))
- (narrow-to-region 1 8)
- (org-fill-paragraph)
- (buffer-string)))))
-
- (should
- (equal "> a b"
- (org-test-with-temp-text "> a\n> b"
- (let ((fill-column 5)
- (adaptive-fill-regexp "[ \t]*>+[ \t]*"))
- (org-fill-paragraph)
- (buffer-string)))))
-
-
- (should
- (equal "- A B"
- (org-test-with-temp-text "- A\n B"
- (let ((fill-column 20))
- (org-fill-paragraph)
- (buffer-string)))))
- (should
- (equal "[fn:1] A B"
- (org-test-with-temp-text "[fn:1] A\nB"
- (let ((fill-column 20))
- (org-fill-paragraph)
- (buffer-string)))))
- (org-test-with-temp-text "#+BEGIN_VERSE\nSome \\\\\nlong\ntext\n#+END_VERSE"
- (let ((fill-column 20))
- (org-fill-paragraph)
- (should (equal (buffer-string)
- "#+BEGIN_VERSE\nSome \\\\\nlong\ntext\n#+END_VERSE"))))
-
- (should
- (equal
- (org-test-with-temp-text "#+BEGIN_COMMENT\nSome\ntext\n#+END_COMMENT"
- (let ((fill-column 20))
- (forward-line)
- (org-fill-paragraph)
- (buffer-string)))
- "#+BEGIN_COMMENT\nSome text\n#+END_COMMENT"))
-
- (should
- (equal " # A B"
- (org-test-with-temp-text " # A\n # B"
- (let ((fill-column 20))
- (org-fill-paragraph)
- (buffer-string)))))
-
- (should
- (equal "# A B\n\n# C"
- (org-test-with-temp-text "# A\n# B\n\n# C"
- (let ((fill-column 20))
- (org-fill-paragraph)
- (buffer-string)))))
-
- (should
- (equal "# A B\n#\n# C"
- (org-test-with-temp-text "# A\n# B\n#\n# C"
- (let ((fill-column 20))
- (org-fill-paragraph)
- (buffer-string)))))
-
- (should
- (equal "# > a b"
- (org-test-with-temp-text "# > a\n# > b"
- (let ((fill-column 20)
- (adaptive-fill-regexp "[ \t]*>+[ \t]*"))
- (org-fill-paragraph)
- (buffer-string)))))
-
- (org-test-with-temp-text "#+NAME: para\nSome\ntext."
- (let ((fill-column 20))
- (org-fill-paragraph)
- (should (equal (buffer-string) "#+NAME: para\nSome\ntext."))))
-
- (should-not
- (org-test-with-temp-text "| a | b |\n| c | d |\n"
- (forward-char)
- (org-fill-paragraph)
- (eobp))))
- (ert-deftest test-org/auto-fill-function ()
- "Test auto-filling features."
-
- (should
- (equal "12345\n7890"
- (org-test-with-temp-text "12345 7890"
- (let ((fill-column 5))
- (end-of-line)
- (org-auto-fill-function)
- (buffer-string)))))
-
- (should
- (equal "- 12345\n 7890"
- (org-test-with-temp-text "- 12345 7890"
- (let ((fill-column 7))
- (end-of-line)
- (org-auto-fill-function)
- (buffer-string)))))
-
- (should
- (equal "> 12345\n 7890"
- (org-test-with-temp-text "> 12345 7890"
- (let ((fill-column 10)
- (adaptive-fill-regexp "[ \t]*>+[ \t]*")
- (adaptive-fill-first-line-regexp "\\`[ ]*\\'"))
- (end-of-line)
- (org-auto-fill-function)
- (buffer-string)))))
- (should
- (equal "> 12345\n> 12345\n> 7890"
- (org-test-with-temp-text "> 12345\n> 12345 7890"
- (let ((fill-column 10)
- (adaptive-fill-regexp "[ \t]*>+[ \t]*"))
- (goto-char (point-max))
- (org-auto-fill-function)
- (buffer-string)))))
- (should-not
- (equal " 12345\n *12345\n *12345"
- (org-test-with-temp-text " 12345\n *12345 12345"
- (let ((fill-column 10)
- (adaptive-fill-regexp "[ \t]*>+[ \t]*"))
- (goto-char (point-max))
- (org-auto-fill-function)
- (buffer-string)))))
-
- (should
- (equal " # 12345\n # 7890"
- (org-test-with-temp-text " # 12345 7890"
- (let ((fill-column 10))
- (end-of-line)
- (org-auto-fill-function)
- (buffer-string)))))
-
- (should-not
- (equal "12345 # 7890\n# 1"
- (org-test-with-temp-text "12345 # 7890 1"
- (let ((fill-column 12))
- (end-of-line)
- (org-auto-fill-function)
- (buffer-string)))))
-
- (should-not
- (equal "# a\n# b\nRegular\n# paragraph"
- (org-test-with-temp-text "# a\n# b\nRegular paragraph"
- (let ((fill-column 12))
- (end-of-line 3)
- (org-auto-fill-function)
- (buffer-string)))))
-
- (should
- (equal "#+BEGIN_COMMENT\n12345\n7890\n#+END_COMMENT"
- (org-test-with-temp-text "#+BEGIN_COMMENT\n12345 7890\n#+END_COMMENT"
- (let ((fill-column 5))
- (forward-line)
- (end-of-line)
- (org-auto-fill-function)
- (buffer-string)))))
- (should
- (equal "#+BEGIN_COMMENT\n12345\n7890\n#+END_COMMENT"
- (org-test-with-temp-text "#+BEGIN_COMMENT\n12345 7890\n#+END_COMMENT"
- (let ((fill-column 5))
- (forward-line)
- (end-of-line)
- (org-auto-fill-function)
- (buffer-string)))))
-
- (should-not
- (equal "12345\n- 90"
- (org-test-with-temp-text "12345 - 90"
- (let ((fill-column 5))
- (end-of-line)
- (org-auto-fill-function)
- (buffer-string)))))
-
- (should-not
- (equal "123\\\\\n7890"
- (org-test-with-temp-text "123\\\\ 7890"
- (let ((fill-column 6))
- (end-of-line)
- (org-auto-fill-function)
- (buffer-string)))))
-
- (should-not
- (equal "#+ATTR_LATEX: ABC\nDEFGHIJKL"
- (org-test-with-temp-text "#+ATTR_LATEX: ABC DEFGHIJKL"
- (let ((fill-column 20))
- (end-of-line)
- (org-auto-fill-function)
- (buffer-string))))))
- (ert-deftest test-org/indent-line ()
- "Test `org-indent-line' specifications."
-
- (should
- (zerop
- (org-test-with-temp-text "%%(org-calendar-holiday)"
- (org-indent-line)
- (org-get-indentation))))
- (should
- (zerop
- (org-test-with-temp-text "[fn:1] fn"
- (let ((org-adapt-indentation t)) (org-indent-line))
- (org-get-indentation))))
- (should
- (zerop
- (org-test-with-temp-text "* H"
- (org-indent-line)
- (org-get-indentation))))
-
- (should
- (zerop
- (org-test-with-temp-text ""
- (org-indent-line)
- (org-get-indentation))))
-
-
- (should
- (= 2
- (org-test-with-temp-text "* H\nA"
- (forward-line)
- (let ((org-adapt-indentation t)) (org-indent-line))
- (org-get-indentation))))
- (should
- (= 2
- (org-test-with-temp-text "* H\n\nA"
- (forward-line)
- (let ((org-adapt-indentation t)) (org-indent-line))
- (org-get-indentation))))
- (should
- (zerop
- (org-test-with-temp-text "* H\nA"
- (forward-line)
- (let ((org-adapt-indentation nil)) (org-indent-line))
- (org-get-indentation))))
-
- (should
- (org-test-with-temp-text "* H\nAB"
- (forward-line)
- (forward-char)
- (let ((org-adapt-indentation t)) (org-indent-line))
- (looking-at "B")))
-
- (should
- (= 1
- (org-test-with-temp-text "* H\n - A"
- (forward-line)
- (let ((org-adapt-indentation t)) (org-indent-line))
- (org-get-indentation))))
-
-
-
-
- (should
- (= 4
- (org-test-with-temp-text "* H\n- A\n - AA\n"
- (goto-char (point-max))
- (let ((org-adapt-indentation t)) (org-indent-line))
- (org-get-indentation))))
- (should
- (zerop
- (org-test-with-temp-text "* H\n- A\n - AA\n\n\n\n"
- (goto-char (point-max))
- (let ((org-adapt-indentation t)) (org-indent-line))
- (org-get-indentation))))
- (should
- (= 4
- (org-test-with-temp-text "* H\n- A\n - \n"
- (goto-char (point-max))
- (let ((org-adapt-indentation t)) (org-indent-line))
- (org-get-indentation))))
-
-
-
- (should
- (zerop
- (org-test-with-temp-text "* H\n[fn:1] Definition\n"
- (goto-char (point-max))
- (let ((org-adapt-indentation t)) (org-indent-line))
- (org-get-indentation))))
- (should
- (zerop
- (org-test-with-temp-text "* H\n[fn:1] Definition\n\n\n\n"
- (goto-char (point-max))
- (let ((org-adapt-indentation t)) (org-indent-line))
- (org-get-indentation))))
-
-
- (should
- (= 1
- (org-test-with-temp-text " #+BEGIN_CENTER\n Contents\n#+END_CENTER"
- (forward-line 2)
- (org-indent-line)
- (org-get-indentation))))
-
-
- (should
- (= 1
- (org-test-with-temp-text " Paragraph\n\n<point>"
- (org-indent-line)
- (org-get-indentation))))
-
-
-
- (should
- (= 2
- (org-test-with-temp-text "A\n\n B\n\nC"
- (goto-char (point-max))
- (org-indent-line)
- (org-get-indentation))))
- (should
- (= 1
- (org-test-with-temp-text " A\n\n[fn:1] B\n\n\nC"
- (goto-char (point-max))
- (org-indent-line)
- (org-get-indentation))))
- (should
- (= 1
- (org-test-with-temp-text " #+BEGIN_CENTER\n Contents\n#+END_CENTER"
- (forward-line 1)
- (org-indent-line)
- (org-get-indentation))))
-
-
-
- (should
- (= 6
- (org-test-with-temp-text "#+BEGIN_SRC emacs-lisp\n (and A\nB)\n#+END_SRC"
- (forward-line 2)
- (let ((org-src-tab-acts-natively t)
- (org-edit-src-content-indentation 0))
- (org-indent-line))
- (org-get-indentation))))
- (should
- (= 1
- (org-test-with-temp-text "#+BEGIN_SRC emacs-lisp\n (and A\nB)\n#+END_SRC"
- (forward-line 2)
- (let ((org-src-tab-acts-natively nil)
- (org-edit-src-content-indentation 0))
- (org-indent-line))
- (org-get-indentation))))
-
- (should
- (zerop
- (org-test-with-temp-text "#+BEGIN_CENTER\nline1\n\n line2\n#+END_CENTER"
- (forward-line 3)
- (org-indent-line)
- (org-get-indentation))))
-
-
- (should
- (equal "* H\n:PROPERTIES:\n:key: value\n:END:"
- (org-test-with-temp-text "* H\n:PROPERTIES:\n<point>:key: value\n:END:"
- (let ((org-property-format "%-10s %s")) (org-indent-line))
- (buffer-string))))
- (should
- (equal "* H\n:PROPERTIES:\n:key:\n:END:"
- (org-test-with-temp-text "* H\n:PROPERTIES:\n<point>:key:\n:END:"
- (let ((org-property-format "%-10s %s")) (org-indent-line))
- (buffer-string)))))
- (ert-deftest test-org/indent-region ()
- "Test `org-indent-region' specifications."
-
- (should
- (equal "A\nB\nC"
- (org-test-with-temp-text " A\nB\n C"
- (org-indent-region (point-min) (point-max))
- (buffer-string))))
-
- (should
- (equal "#+BEGIN_CENTER\nA\nB\n#+END_CENTER"
- (org-test-with-temp-text "#+BEGIN_CENTER\n A\n B\n#+END_CENTER"
- (org-indent-region (point-min) (point-max))
- (buffer-string))))
-
- (should
- (equal "#+BEGIN_VERSE\n A\n B\n#+END_VERSE"
- (org-test-with-temp-text "#+BEGIN_VERSE\n A\n B\n#+END_VERSE"
- (org-indent-region (point-min) (point-max))
- (buffer-string))))
- (should
- (equal "#+BEGIN_EXAMPLE\n A\n B\n#+END_EXAMPLE"
- (org-test-with-temp-text "#+BEGIN_EXAMPLE\n A\n B\n#+END_EXAMPLE"
- (org-indent-region (point-min) (point-max))
- (buffer-string))))
-
-
- (should
- (equal "#+BEGIN_SRC emacs-lisp\n(and A\n B)\n#+END_SRC"
- (org-test-with-temp-text
- "#+BEGIN_SRC emacs-lisp\n (and A\nB)\n#+END_SRC"
- (let ((org-src-tab-acts-natively t)
- (org-edit-src-content-indentation 0))
- (org-indent-region (point-min) (point-max)))
- (buffer-string))))
- (should
- (equal "#+BEGIN_SRC emacs-lisp\n (and A\nB)\n#+END_SRC"
- (org-test-with-temp-text
- "#+BEGIN_SRC emacs-lisp\n (and A\nB)\n#+END_SRC"
- (let ((org-src-tab-acts-natively nil)
- (org-edit-src-content-indentation 0))
- (org-indent-region (point-min) (point-max)))
- (buffer-string))))
-
-
- (should
- (equal "* H\n:PROPERTIES:\n:key: value\n:END:"
- (org-test-with-temp-text "* H\n<point>:PROPERTIES:\n:key: value\n:END:"
- (let ((org-property-format "%-10s %s")
- (org-adapt-indentation nil))
- (org-indent-region (point) (point-max)))
- (buffer-string))))
- (should
- (equal "* H\n:PROPERTIES:\n:key:\n:END:"
- (org-test-with-temp-text "* H\n<point>:PROPERTIES:\n:key:\n:END:"
- (let ((org-property-format "%-10s %s")
- (org-adapt-indentation nil))
- (org-indent-region (point) (point-max)))
- (buffer-string))))
-
- (should
- (equal "- A\n B\n - C\n\n D"
- (org-test-with-temp-text "- A\n B\n - C\n\n D"
- (org-indent-region (point-min) (point-max))
- (buffer-string))))
- (should
- (equal "- A\n\n- B"
- (org-test-with-temp-text " - A\n\n - B"
- (org-indent-region (point-min) (point-max))
- (buffer-string))))
-
- (should
- (equal "[fn:1] Definition\n\nDefinition"
- (org-test-with-temp-text "[fn:1] Definition\n\n Definition"
- (org-indent-region (point-min) (point-max))
- (buffer-string))))
-
- (should
- (equal "\nParagraph"
- (org-test-with-temp-text "\n Paragraph"
- (org-indent-region (point-min) (point-max))
- (buffer-string)))))
- (ert-deftest test-org/return ()
- "Test RET (`org-return') specifications."
-
- (should
- (equal "Para\ngraph"
- (org-test-with-temp-text "Para<point>graph"
- (org-return)
- (buffer-string))))
-
- (should
- (equal " Para\n graph"
- (org-test-with-temp-text " Para<point>graph"
- (org-return t)
- (buffer-string))))
-
- (should
- (org-test-with-temp-text "| <point>a |\n| b |"
- (org-return)
- (org-looking-at-p "b")))
-
-
- (should
- (org-test-with-temp-text "Link [[target<point>]] <<target>>"
- (let ((org-return-follows-link t)) (org-return))
- (org-looking-at-p "<<target>>")))
- (should-not
- (org-test-with-temp-text "Link [[target<point>]] <<target>>"
- (let ((org-return-follows-link nil)) (org-return))
- (org-looking-at-p "<<target>>")))
-
- (should
- (org-test-with-temp-text "| [[target<point>]] |\n| between |\n| <<target>> |"
- (let ((org-return-follows-link t)) (org-return))
- (org-looking-at-p "between")))
-
- (should
- (equal "- A\n B"
- (org-test-with-temp-text "- A <point>B"
- (org-return t)
- (buffer-string))))
- (should
- (equal "- A\n\n- B"
- (org-test-with-temp-text "- A\n<point>- B"
- (org-return t)
- (buffer-string))))
-
-
- (should
- (equal "* H :tag:\n"
- (org-test-with-temp-text "* H :<point>tag:"
- (org-return)
- (buffer-string)))))
- (ert-deftest test-org/meta-return ()
- "Test M-RET (`org-meta-return') specifications."
-
- (should
- (org-test-with-temp-text "| a |"
- (forward-char)
- (org-meta-return)
- (forward-line -1)
- (looking-at "| |$")))
-
- (should
- (org-test-with-temp-text "a"
- (org-meta-return)
- (beginning-of-line)
- (looking-at "\* a$")))
-
- (should
- (org-test-with-temp-text "- a"
- (org-meta-return)
- (beginning-of-line)
- (looking-at "- $")))
-
- (should
- (org-test-with-temp-text ":MYDRAWER:\n- a\n:END:"
- (forward-line)
- (org-meta-return)
- (beginning-of-line)
- (looking-at "- $"))))
- (ert-deftest test-org/insert-heading ()
- "Test `org-insert-heading' specifications."
-
- (should
- (equal "* "
- (org-test-with-temp-text ""
- (org-insert-heading)
- (buffer-string))))
-
- (should
- (equal "* P"
- (org-test-with-temp-text "<point>P"
- (org-insert-heading)
- (buffer-string))))
-
-
- (should
- (equal "Para\n* graph"
- (org-test-with-temp-text "Para<point>graph"
- (let ((org-M-RET-may-split-line '((default . t))))
- (org-insert-heading))
- (buffer-string))))
- (should
- (equal "Paragraph\n* "
- (org-test-with-temp-text "Para<point>graph"
- (let ((org-M-RET-may-split-line '((default . nil))))
- (org-insert-heading))
- (buffer-string))))
-
-
-
- (should
- (equal "* H\n- item\n- "
- (org-test-with-temp-text "* H\n- item<point>"
- (let ((org-insert-heading-respect-content nil))
- (org-insert-heading))
- (buffer-string))))
- (should
- (equal "* H\n- item\n- item 2\n* "
- (org-test-with-temp-text "* H\n- item<point>\n- item 2"
- (let ((org-insert-heading-respect-content nil))
- (org-insert-heading '(4)))
- (buffer-string))))
- (should
- (equal "* H\n- item\n* "
- (org-test-with-temp-text "* H\n- item"
- (org-cycle)
- (goto-char (point-max))
- (let ((org-insert-heading-respect-content nil)) (org-insert-heading))
- (buffer-string))))
-
-
- (should
- (equal "* H1\n** H3\n- item\n** H2\n** "
- (org-test-with-temp-text "* H1\n** H3\n- item<point>\n** H2"
- (let ((org-insert-heading-respect-content nil))
- (org-insert-heading '(16)))
- (buffer-string))))
-
-
- (should
- (equal "* H1\n** H2\n* "
- (org-test-with-temp-text "* H1\n** H2<point>"
- (org-insert-heading nil nil t)
- (buffer-string))))
- (should
- (equal "* H1\n- item\n* "
- (org-test-with-temp-text "* H1\n- item<point>"
- (org-insert-heading nil nil t)
- (buffer-string))))
-
- (should
- (equal "* \n* "
- (org-test-with-temp-text "* <point>"
- (org-insert-heading)
- (buffer-string)))))
- (ert-deftest test-org/insert-todo-heading-respect-content ()
- "Test `org-insert-todo-heading-respect-content' specifications."
-
- (should
- (org-test-with-temp-text "* H1\n Body"
- (org-insert-todo-heading-respect-content)
- (nth 2 (org-heading-components))))
-
- (should
- (org-test-with-temp-text "* H1\nH1Body\n** H2\nH2Body"
- (search-forward "H1Body")
- (org-insert-todo-heading-respect-content)
- (and (eobp) (org-at-heading-p))))
-
- (should
- (org-test-with-temp-text "* H\n- an item\n- another one"
- (search-forward "an ")
- (org-insert-todo-heading-respect-content)
- (and (eobp) (org-at-heading-p)))))
- (ert-deftest test-org/toggle-fixed-width ()
- "Test `org-toggle-fixed-width' specifications."
-
- (should
- (equal ": A"
- (org-test-with-temp-text "A"
- (org-toggle-fixed-width)
- (buffer-string))))
-
- (should
- (equal "A"
- (org-test-with-temp-text ": A"
- (org-toggle-fixed-width)
- (buffer-string))))
-
-
- (should
- (equal "* H\n: "
- (org-test-with-temp-text "* H\n"
- (forward-line)
- (org-toggle-fixed-width)
- (buffer-string))))
- (should
- (equal "#+BEGIN_EXAMPLE\nContents\n#+END_EXAMPLE\n: "
- (org-test-with-temp-text "#+BEGIN_EXAMPLE\nContents\n#+END_EXAMPLE\n"
- (goto-char (point-max))
- (org-toggle-fixed-width)
- (buffer-string))))
-
-
- (should
- (equal ": * Headline"
- (org-test-with-temp-text "* Headline"
- (org-toggle-fixed-width)
- (buffer-string))))
- (should
- (equal ": #+KEYWORD: value"
- (org-test-with-temp-text "#+KEYWORD: value"
- (org-toggle-fixed-width)
- (buffer-string))))
-
- (should-error
- (org-test-with-temp-text "#+BEGIN_EXAMPLE\n: A\n#+END_EXAMPLE"
- (forward-line)
- (org-toggle-fixed-width)
- (buffer-string)))
-
- (should
- (equal "- A\n : B"
- (org-test-with-temp-text "- A\n B"
- (forward-line)
- (org-toggle-fixed-width)
- (buffer-string))))
-
-
- (should
- (equal "A\n\nB"
- (org-test-with-temp-text ": A\n\n: B"
- (transient-mark-mode 1)
- (push-mark (point) t t)
- (goto-char (point-max))
- (org-toggle-fixed-width)
- (buffer-string))))
-
-
- (should
- (equal ": A\n: \n: B\n: \n: C"
- (org-test-with-temp-text "A\n\n: B\n\nC"
- (transient-mark-mode 1)
- (push-mark (point) t t)
- (goto-char (point-max))
- (org-toggle-fixed-width)
- (buffer-string))))
-
-
- (should
- (equal ": A\n\n"
- (org-test-with-temp-text "A\n\n"
- (transient-mark-mode 1)
- (push-mark (point) t t)
- (goto-char (point-max))
- (org-toggle-fixed-width)
- (buffer-string))))
- (should
- (equal ": \n: \n"
- (org-test-with-temp-text "\n\n"
- (transient-mark-mode 1)
- (push-mark (point) t t)
- (goto-char (point-max))
- (org-toggle-fixed-width)
- (buffer-string)))))
- (ert-deftest test-org/in-commented-heading-p ()
- "Test `org-in-commented-heading-p' specifications."
-
- (should
- (org-test-with-temp-text "* COMMENT Headline\nBody"
- (goto-char (point-max))
- (org-in-commented-heading-p)))
-
- (should
- (org-test-with-temp-text "* COMMENT Headline\n** Level 2\nBody"
- (goto-char (point-max))
- (org-in-commented-heading-p)))
-
- (should-not
- (org-test-with-temp-text "* Comment Headline\nBody"
- (goto-char (point-max))
- (org-in-commented-heading-p)))
-
- (should-not
- (org-test-with-temp-text "* COMMENTHeadline\nBody"
- (goto-char (point-max))
- (org-in-commented-heading-p)))
-
- (should-not
- (org-test-with-temp-text "* COMMENT Headline\n** Level 2\nBody"
- (goto-char (point-max))
- (org-in-commented-heading-p t))))
- (ert-deftest test-org/set-regexps-and-options ()
- "Test `org-set-regexps-and-options' specifications."
-
- (should
- (equal '(("A" . ?a) ("B") ("C"))
- (org-test-with-temp-text "#+TAGS: A(a) B C"
- (org-mode-restart)
- org-tag-alist)))
- (should
- (equal '(("A") (:newline) ("B"))
- (org-test-with-temp-text "#+TAGS: A\n#+TAGS: B"
- (org-mode-restart)
- org-tag-alist)))
- (should
- (equal '((:startgroup) ("A") ("B") (:endgroup) ("C"))
- (org-test-with-temp-text "#+TAGS: { A B } C"
- (org-mode-restart)
- org-tag-alist)))
- (should
- (equal '((:startgroup) ("A") (:grouptags) ("B") ("C") (:endgroup))
- (org-test-with-temp-text "#+TAGS: { A : B C }"
- (org-mode-restart)
- org-tag-alist)))
- (should
- (equal '(("A" "B" "C"))
- (org-test-with-temp-text "#+TAGS: { A : B C }"
- (org-mode-restart)
- org-tag-groups-alist)))
- (should
- (equal '((:startgrouptag) ("A") (:grouptags) ("B") ("C") (:endgrouptag))
- (org-test-with-temp-text "#+TAGS: [ A : B C ]"
- (org-mode-restart)
- org-tag-alist)))
- (should
- (equal '(("A" "B" "C"))
- (org-test-with-temp-text "#+TAGS: [ A : B C ]"
- (org-mode-restart)
- org-tag-groups-alist)))
-
- (should
- (equal '("A" "B" "C")
- (org-test-with-temp-text "#+FILETAGS: :A:B:C:"
- (org-mode-restart)
- org-file-tags)))
-
- (should
- (equal "foo=1"
- (org-test-with-temp-text "#+PROPERTY: var foo=1"
- (org-mode-restart)
- (cdr (assoc "var" org-file-properties)))))
- (should
- (equal
- "foo=1 bar=2"
- (org-test-with-temp-text "#+PROPERTY: var foo=1\n#+PROPERTY: var+ bar=2"
- (org-mode-restart)
- (cdr (assoc "var" org-file-properties)))))
- (should
- (equal
- "foo=1 bar=2"
- (org-test-with-temp-text "#+PROPERTY: var foo=1\n#+PROPERTY: VAR+ bar=2"
- (org-mode-restart)
- (cdr (assoc "var" org-file-properties)))))
-
- (should
- (equal "%s_done::"
- (org-test-with-temp-text "#+ARCHIVE: %s_done::"
- (org-mode-restart)
- org-archive-location)))
-
- (should
- (eq 'test
- (org-test-with-temp-text "#+CATEGORY: test"
- (org-mode-restart)
- org-category)))
- (should
- (equal "test"
- (org-test-with-temp-text "#+CATEGORY: test"
- (org-mode-restart)
- (cdr (assoc "CATEGORY" org-file-properties)))))
-
- (should
- (equal "%25ITEM %TAGS %PRIORITY %TODO"
- (org-test-with-temp-text "#+COLUMNS: %25ITEM %TAGS %PRIORITY %TODO"
- (org-mode-restart)
- org-columns-default-format)))
-
- (should
- (equal '("299792458." "3.14")
- (org-test-with-temp-text "#+CONSTANTS: c=299792458. pi=3.14"
- (org-mode-restart)
- (mapcar
- (lambda (n) (cdr (assoc n org-table-formula-constants-local)))
- '("c" "pi")))))
- (should
- (equal "3.14"
- (org-test-with-temp-text "#+CONSTANTS: pi=22/7 pi=3.14"
- (org-mode-restart)
- (cdr (assoc "pi" org-table-formula-constants-local)))))
- (should
- (equal "22/7"
- (org-test-with-temp-text "#+CONSTANTS: PI=22/7 pi=3.14"
- (org-mode-restart)
- (cdr (assoc "PI" org-table-formula-constants-local)))))
-
- (should
- (equal
- '("url1" "url2")
- (org-test-with-temp-text "#+LINK: a url1\n#+LINK: b url2"
- (org-mode-restart)
- (mapcar (lambda (abbrev) (cdr (assoc abbrev org-link-abbrev-alist-local)))
- '("a" "b")))))
-
- (should
- (equal
- '(?X ?Z ?Y)
- (org-test-with-temp-text "#+PRIORITIES: X Z Y"
- (org-mode-restart)
- (list org-highest-priority org-lowest-priority org-default-priority))))
- (should
- (equal
- '(?A ?C ?B)
- (org-test-with-temp-text "#+PRIORITIES: X Z"
- (org-mode-restart)
- (list org-highest-priority org-lowest-priority org-default-priority))))
-
- (should
- (equal '(t t)
- (org-test-with-temp-text "#+STARTUP: fold odd"
- (org-mode-restart)
- (list org-startup-folded org-odd-levels-only))))
-
- (should
- (equal '(("A" "B") ("C"))
- (org-test-with-temp-text "#+TODO: A B | C"
- (org-mode-restart)
- (list org-not-done-keywords org-done-keywords))))
- (should
- (equal '(("A" "C") ("B" "D"))
- (org-test-with-temp-text "#+TODO: A | B\n#+TODO: C | D"
- (org-mode-restart)
- (list org-not-done-keywords org-done-keywords))))
- (should
- (equal '(("A" "B") ("C"))
- (org-test-with-temp-text "#+TYP_TODO: A B | C"
- (org-mode-restart)
- (list org-not-done-keywords org-done-keywords))))
- (should
- (equal '((:startgroup) ("A" . ?a) (:endgroup))
- (org-test-with-temp-text "#+TODO: A(a)"
- (org-mode-restart)
- org-todo-key-alist)))
- (should
- (equal '(("D" note nil) ("C" time nil) ("B" note time))
- (org-test-with-temp-text "#+TODO: A(a) B(b@/!) | C(c!) D(d@)"
- (org-mode-restart)
- org-todo-log-states)))
-
- (should
- (equal "1"
- (org-test-with-temp-text
- (format "#+SETUPFILE: \"%s/examples/setupfile.org\"" org-test-dir)
- (org-mode-restart)
- (cdr (assoc "a" org-file-properties))))))
- (ert-deftest test-org/coderef ()
- "Test coderef links specifications."
- (should
- (org-test-with-temp-text "
- #+BEGIN_SRC emacs-lisp
- \(+ 1 1) (ref:sc)
- #+END_SRC
- \[[(sc)]]"
- (goto-char (point-max))
- (org-open-at-point)
- (looking-at "(ref:sc)"))))
- (ert-deftest test-org/custom-id ()
- "Test custom ID links specifications."
- (should
- (org-test-with-temp-text
- "* H1\n:PROPERTIES:\n:CUSTOM_ID: custom\n:END:\n* H2\n[[#custom]]"
- (goto-char (point-max))
- (org-open-at-point)
- (org-looking-at-p "\\* H1")))
-
- (should-not
- (org-test-with-temp-text
- "* H1\n:DRAWER:\n:CUSTOM_ID: custom\n:END:\n* H2\n[[#custom]]<point>"
- (goto-char (point-max))
- (let (org-link-search-must-match-exact-headline) (org-open-at-point))
- (org-looking-at-p "\\* H1"))))
- (ert-deftest test-org/fuzzy-links ()
- "Test fuzzy links specifications."
-
- (should
- (org-test-with-temp-text "#+NAME: Test\n|a|b|\n<<Test>>\n* Test\n[[Test]]"
- (goto-line 5)
- (org-open-at-point)
- (looking-at "<<Test>>")))
-
- (should
- (org-test-with-temp-text "Test\n#+NAME: Test\n|a|b|\n* Test\n[[Test]]"
- (goto-line 5)
- (org-open-at-point)
- (looking-at "#\\+NAME: Test")))
-
- (should
- (org-test-with-temp-text "* Head1\n* Head2\n*Head3\n[[Head2]]"
- (goto-line 4)
- (org-open-at-point)
- (looking-at "\\* Head2")))
-
- (should
- (org-test-with-temp-text "* Test\n<<Test>>\n[[*Test]]"
- (goto-line 3)
- (org-open-at-point)
- (looking-at "\\* Test")))
-
-
- (should-error
- (org-test-with-temp-text "* Test 1\nFoo Bar\n<point>[[*Test]]"
- (let ((org-link-search-must-match-exact-headline nil))
- (org-open-at-point))))
-
-
- (should
- (let ((first-line
- "** TODO [#A] [/] Test [1/2] [33%] 1 \t 2 [%] :work:urgent: "))
- (org-test-with-temp-text
- (concat first-line "\nFoo Bar\n<point>[[*Test 1 2]]")
- (let ((org-link-search-must-match-exact-headline nil)
- (org-todo-regexp "TODO"))
- (org-open-at-point))
- (looking-at (regexp-quote first-line)))))
-
- (should-error
- (let ((first-line
- "** TODO [#A] [/] Test [1/2] [33%] 1 \t 2 [%] :work:urgent: "))
- (org-test-with-temp-text
- (concat first-line "\nFoo Bar\n<point>[[*Test 1]]")
- (let ((org-link-search-must-match-exact-headline nil)
- (org-todo-regexp "TODO"))
- (org-open-at-point)))))
-
- (should
- (org-test-with-temp-text "[[*Test]]\n* COMMENT Test"
- (org-open-at-point)
- (looking-at "\\* COMMENT Test")))
-
- (should
- (org-test-with-temp-text "* With space\n[[*With%20space][With space]]"
- (goto-char (point-max))
- (org-open-at-point)
- (bobp))))
- (ert-deftest test-org/org-link-escape-ascii-character ()
- "Escape an ascii character."
- (should
- (string=
- "%5B"
- (org-link-escape "["))))
- (ert-deftest test-org/org-link-escape-ascii-ctrl-character ()
- "Escape an ascii control character."
- (should
- (string=
- "%09"
- (org-link-escape "\t"))))
- (ert-deftest test-org/org-link-escape-multibyte-character ()
- "Escape an unicode multibyte character."
- (should
- (string=
- "%E2%82%AC"
- (org-link-escape "€"))))
- (ert-deftest test-org/org-link-escape-custom-table ()
- "Escape string with custom character table."
- (should
- (string=
- "Foo%3A%42ar%0A"
- (org-link-escape "Foo:Bar\n" '(?\: ?\B)))))
- (ert-deftest test-org/org-link-escape-custom-table-merge ()
- "Escape string with custom table merged with default table."
- (should
- (string=
- "%5BF%6F%6F%3A%42ar%0A%5D"
- (org-link-escape "[Foo:Bar\n]" '(?\: ?\B ?\o) t))))
- (ert-deftest test-org/org-link-unescape-ascii-character ()
- "Unescape an ascii character."
- (should
- (string=
- "["
- (org-link-unescape "%5B"))))
- (ert-deftest test-org/org-link-unescape-ascii-ctrl-character ()
- "Unescpae an ascii control character."
- (should
- (string=
- "\n"
- (org-link-unescape "%0A"))))
- (ert-deftest test-org/org-link-unescape-multibyte-character ()
- "Unescape unicode multibyte character."
- (should
- (string=
- "€"
- (org-link-unescape "%E2%82%AC"))))
- (ert-deftest test-org/org-link-unescape-ascii-extended-char ()
- "Unescape old style percent escaped character."
- (should
- (string=
- "àâçèéêîôùû"
- (decode-coding-string
- (org-link-unescape "%E0%E2%E7%E8%E9%EA%EE%F4%F9%FB") 'latin-1))))
- (ert-deftest test-org/org-link-escape-url-with-escaped-char ()
- "Escape and unescape a URL that includes an escaped char.
- http://article.gmane.org/gmane.emacs.orgmode/21459/"
- (should
- (string=
- "http://some.host.com/form?&id=blah%2Bblah25"
- (org-link-unescape
- (org-link-escape "http://some.host.com/form?&id=blah%2Bblah25")))))
- (ert-deftest test-org/org-link-escape-chars-browser ()
- "Test of the constant `org-link-escape-chars-browser'.
- See there why this test is a candidate to be removed once Org
- drops support for Emacs 24.1 and 24.2."
- (should
- (string=
- (concat "http://lists.gnu.org/archive/cgi-bin/namazu.cgi?query="
- "%22Release%208.2%22&idxname=emacs-orgmode")
- (org-link-escape-browser
-
- (concat "http://lists.gnu.org/archive/cgi-bin/namazu.cgi?query="
- "\"Release 8.2\"&idxname=emacs-orgmode")))))
- (ert-deftest test-org/open-at-point-in-keyword ()
- "Does `org-open-at-point' open link in a keyword line?"
- (should
- (org-test-with-temp-text
- "#+KEYWORD: <point>[[info:emacs#Top]]"
- (org-open-at-point) t)))
- (ert-deftest test-org/open-at-point-in-property ()
- "Does `org-open-at-point' open link in property drawer?"
- (should
- (org-test-with-temp-text
- "* Headline
- :PROPERTIES:
- :URL: <point>[[info:emacs#Top]]
- :END:"
- (org-open-at-point) t)))
- (ert-deftest test-org/open-at-point-in-comment ()
- "Does `org-open-at-point' open link in a commented line?"
- (should
- (org-test-with-temp-text
- "# <point>[[info:emacs#Top]]"
- (org-open-at-point) t)))
- (ert-deftest test-org/open-at-point/info ()
- "Test `org-open-at-point' on info links."
- (should
- (org-test-with-temp-text
- "<point>[[info:emacs#Top]]"
- (org-open-at-point)
- (and (switch-to-buffer "*info*")
- (prog1
- (looking-at "\nThe Emacs Editor")
- (kill-buffer))))))
- (ert-deftest test-org/open-at-point/inline-image ()
- "Test `org-open-at-point' on nested links."
- (should
- (org-test-with-temp-text "[[info:org#Top][info:<point>emacs#Top]]"
- (org-open-at-point)
- (prog1 (with-current-buffer "*info*" (looking-at "\nOrg Mode Manual"))
- (kill-buffer "*info*")))))
- (ert-deftest test-org/accumulated-properties-in-drawers ()
- "Ensure properties accumulate in subtree drawers."
- (org-test-at-id "75282ba2-f77a-4309-a970-e87c149fe125"
- (org-babel-next-src-block)
- (should (equal '(2 1) (org-babel-execute-src-block)))))
- (ert-deftest test-org/custom-properties ()
- "Test custom properties specifications."
-
- (should
- (let ((org-custom-properties '("FOO")))
- (org-test-with-temp-text "* H\n:PROPERTIES:\n<point>:FOO: val\n:END:\n"
- (org-toggle-custom-properties-visibility)
- (org-invisible-p2))))
-
- (should
- (let ((org-custom-properties '("FOO")))
- (org-test-with-temp-text "* H\n:PROPERTIES:\n<point>:foo: val\n:END:\n"
- (org-toggle-custom-properties-visibility)
- (org-invisible-p2))))
- (should
- (let ((org-custom-properties '("foo")))
- (org-test-with-temp-text "* H\n:PROPERTIES:\n<point>:FOO: val\n:END:\n"
- (org-toggle-custom-properties-visibility)
- (org-invisible-p2))))
-
- (should
- (let ((org-custom-properties '("FOO" "BAR")))
- (org-test-with-temp-text
- "* H\n:PROPERTIES:\n<point>:FOO: val\n:P: 1\n:BAR: baz\n:END:\n"
- (org-toggle-custom-properties-visibility)
- (and (org-invisible-p2)
- (not (progn (forward-line) (org-invisible-p2)))
- (progn (forward-line) (org-invisible-p2))))))
-
- (should
- (let ((org-custom-properties '("FOO")))
- (org-test-with-temp-text "* H\n:PROPERTIES:\n<point>:FOO:\n:END:\n"
- (org-toggle-custom-properties-visibility)
- (org-invisible-p2))))
-
- (should-not
- (let ((org-custom-properties '("FOO")))
- (org-test-with-temp-text ":FOO: val\n"
- (org-toggle-custom-properties-visibility)
- (org-invisible-p2))))
- (should-not
- (let ((org-custom-properties '("A")))
- (org-test-with-temp-text
- "* H\n:PROPERTIES:\n:A: 1\n:END:\n\n:PROPERTIES:\n<point>:A: 2\n:END:"
- (org-toggle-custom-properties-visibility)
- (org-invisible-p2)))))
- (ert-deftest test-org/mark-subtree ()
- "Test `org-mark-subtree' specifications."
-
- (should-error
- (org-test-with-temp-text "Paragraph\n* Headline\nBody"
- (progn (transient-mark-mode 1)
- (org-mark-subtree))))
-
- (should
- (equal
- '(12 32)
- (org-test-with-temp-text "* Headline\n** Sub-headline\nBody"
- (progn (transient-mark-mode 1)
- (forward-line 2)
- (org-mark-subtree)
- (list (region-beginning) (region-end))))))
-
- (should
- (equal
- '(1 32)
- (org-test-with-temp-text "* Headline\n** Sub-headline\nBody"
- (progn (transient-mark-mode 1)
- (forward-line 2)
- (org-mark-subtree 1)
- (list (region-beginning) (region-end))))))
-
- (when (featurep 'org-inlinetask)
- (should
- (= 1
- (org-test-with-temp-text "* Headline\n*************** Task\nContents"
- (progn (transient-mark-mode 1)
- (forward-line 1)
- (let ((org-inlinetask-min-level 15)) (org-mark-subtree))
- (region-beginning)))))))
-
- (ert-deftest test-org/end-of-meta-data ()
- "Test `org-end-of-meta-data' specifications."
-
- (should
- (org-test-with-temp-text "* Headline\nSCHEDULED: <2014-03-04 tue.>"
- (org-end-of-meta-data)
- (eobp)))
-
- (should
- (org-test-with-temp-text
- "* Headline\nSCHEDULED: <2014-03-04 tue.>\n:PROPERTIES:\n:A: 1\n:END:"
- (org-end-of-meta-data)
- (eobp)))
-
- (should
- (org-test-with-temp-text "* Headline\n:PROPERTIES:\n:A: 1\n:END:"
- (org-end-of-meta-data)
- (eobp)))
-
- (should
- (org-test-with-temp-text "* Headline\nContents"
- (org-end-of-meta-data)
- (looking-at "Contents")))
-
-
- (should
- (org-test-with-temp-text "* Headline\n\nContents"
- (org-end-of-meta-data t)
- (looking-at "Contents")))
- (should
- (org-test-with-temp-text "* Headline\nCLOCK:\nContents"
- (org-end-of-meta-data t)
- (looking-at "Contents")))
- (should
- (org-test-with-temp-text "* Headline\n:LOGBOOK:\nlogging\n:END:\nContents"
- (org-end-of-meta-data t)
- (looking-at "Contents")))
-
- (should
- (org-test-with-temp-text "* Headline\n:LOGBOOK:\nlogging\nContents"
- (org-end-of-meta-data t)
- (looking-at ":LOGBOOK:")))
-
- (should-not
- (org-test-with-temp-text "* H1\n*H2\nContents"
- (org-end-of-meta-data t)
- (looking-at "Contents"))))
- (ert-deftest test-org/beginning-of-line ()
- "Test `org-beginning-of-line' specifications."
-
- (should
- (org-test-with-temp-text "Some text\nSome other text"
- (progn (org-beginning-of-line) (bolp))))
-
- (should-not
- (org-test-with-temp-text "A long line of text\nSome other text"
- (progn (visual-line-mode)
- (forward-char 2)
- (dotimes (i 1000) (insert "very "))
- (org-beginning-of-line)
- (bolp))))
-
- (should
- (org-test-with-temp-text "* TODO Headline"
- (let ((org-special-ctrl-a/e t))
- (org-end-of-line)
- (and (progn (org-beginning-of-line) (looking-at "Headline"))
- (progn (org-beginning-of-line) (bolp))
- (progn (org-beginning-of-line) (looking-at "Headline")))))))
- (ert-deftest test-org/end-of-line ()
- "Test `org-end-of-line' specifications."
-
- (should
- (org-test-with-temp-text "Some text\nSome other text"
- (progn (org-end-of-line) (eolp))))
-
- (should-not
- (org-test-with-temp-text "A long line of text\nSome other text"
- (progn (visual-line-mode)
- (forward-char 2)
- (dotimes (i 1000) (insert "very "))
- (goto-char (point-min))
- (org-end-of-line)
- (eolp))))
-
- (should
- (org-test-with-temp-text "* Headline1 :tag:\n"
- (let ((org-special-ctrl-a/e t))
- (and (progn (org-end-of-line) (looking-at " :tag:"))
- (progn (org-end-of-line) (eolp))
- (progn (org-end-of-line) (looking-at " :tag:"))))))
-
- (should
- (org-test-with-temp-text "* Headline2 :tag:\n"
- (let ((org-special-ctrl-a/e nil))
- (and (progn (org-end-of-line) (eolp))
- (progn (org-end-of-line) (eolp))))))
-
- (should
- (org-test-with-temp-text "* Headline3 :tag:\n"
- (let ((org-special-ctrl-a/e 'reversed)
- (this-command last-command))
- (and (progn (org-end-of-line) (eolp))
- (progn (org-end-of-line) (looking-at " :tag:"))))))
-
- (should
- (org-test-with-temp-text "#+BEGIN_CENTER\nContents\n#+END_CENTER"
- (progn (org-end-of-line) (eolp))))
-
- (should-not
- (org-test-with-temp-text "#+BEGIN_CENTER\nContents\n#+END_CENTER"
- (let ((org-special-ctrl-a/e t))
- (org-hide-block-toggle)
- (org-end-of-line)
- (eobp)))))
- (ert-deftest test-org/forward-sentence ()
- "Test `org-forward-sentence' specifications."
-
- (should
- (org-test-with-temp-text "| a<point> | b |"
- (org-forward-sentence)
- (looking-at " |$")))
-
- (should
- (org-test-with-temp-text "| a<point>c | b |"
- (org-forward-sentence)
- (looking-at " | b |$")))
-
- (should
- (org-test-with-temp-text "Sentence<point> 1. Sentence 2."
- (org-forward-sentence)
- (looking-at " Sentence 2.")))
- (should
- (org-test-with-temp-text "Sentence<point> 1. Sentence 2."
- (org-forward-sentence)
- (org-forward-sentence)
- (eobp)))
-
-
- (should
- (org-test-with-temp-text "Paragraph 1.<point>\n\nParagraph 2."
- (org-forward-sentence)
- (eobp))))
- (ert-deftest test-org/backward-sentence ()
- "Test `org-backward-sentence' specifications."
-
-
- (should
- (org-test-with-temp-text "| a | <point>b |"
- (org-backward-sentence)
- (looking-at "a | b |$")))
-
- (should
- (org-test-with-temp-text "| a | b<point>c |"
- (org-backward-sentence)
- (looking-at "bc |$")))
-
- (should
- (org-test-with-temp-text "Sentence 1. Sentence<point> 2."
- (org-backward-sentence)
- (looking-at "Sentence 2.")))
- (should
- (org-test-with-temp-text "Sentence 1. Sentence<point> 2."
- (org-backward-sentence)
- (org-backward-sentence)
- (bobp)))
-
-
- (should
- (org-test-with-temp-text "- Line 1\n line <point>2."
- (org-backward-sentence)
- (looking-at "Line 1"))))
- (ert-deftest test-org/forward-paragraph ()
- "Test `org-forward-paragraph' specifications."
-
- (should-error
- (org-test-with-temp-text "Paragraph"
- (goto-char (point-max))
- (org-forward-paragraph)))
-
- (should
- (org-test-with-temp-text "P1\n\nP2\n\nP3"
- (org-forward-paragraph)
- (looking-at "P2")))
-
- (should
- (org-test-with-temp-text "#+BEGIN_CENTER\nP1\n#+END_CENTER\nP2"
- (org-forward-paragraph)
- (looking-at "P1")))
-
- (should
- (org-test-with-temp-text "#+BEGIN_CENTER\nP1\n\nP2\n#+END_CENTER\nP3"
- (org-hide-block-toggle)
- (org-forward-paragraph)
- (looking-at "P3")))
-
- (should
- (org-test-with-temp-text "#+name: para\n#+caption: caption\nPara"
- (org-forward-paragraph)
- (looking-at "Para")))
-
-
- (should
- (org-test-with-temp-text "- Item1\n\n Paragraph\n- Item2"
- (org-forward-paragraph)
- (looking-at " Paragraph")))
- (should
- (org-test-with-temp-text "[fn:1] Def1\n\nParagraph\n\n[fn:2] Def2"
- (org-forward-paragraph)
- (looking-at "Paragraph")))
-
-
- (should
- (org-test-with-temp-text "- \n\n Paragraph\n- Item2"
- (org-forward-paragraph)
- (looking-at " Paragraph")))
- (should
- (org-test-with-temp-text "[fn:1]\n\nParagraph\n\n[fn:2] Def2"
- (org-forward-paragraph)
- (looking-at "Paragraph")))
-
-
- (should
- (org-test-with-temp-text "| a | b |\n| c | d |\nParagraph"
- (org-forward-paragraph)
- (looking-at "Paragraph")))
- (should
- (org-test-with-temp-text
- "* H\n<point>:PROPERTIES:\n:prop: value\n:END:\nParagraph"
- (org-forward-paragraph)
- (looking-at "Paragraph")))
-
- (should
- (org-test-with-temp-text "#+BEGIN_VERSE\nL1\n\nL2\n#+END_VERSE"
- (org-forward-paragraph)
- (looking-at "L2")))
- (should
- (org-test-with-temp-text "#+BEGIN_SRC\nL1\n\nL2\n#+END_SRC"
- (org-forward-paragraph)
- (looking-at "L2"))))
- (ert-deftest test-org/backward-paragraph ()
- "Test `org-backward-paragraph' specifications."
-
- (should-error
- (org-test-with-temp-text "Paragraph"
- (org-backward-paragraph)))
-
- (should
- (org-test-with-temp-text "P1\n\nP2\n\nP3"
- (goto-char (point-max))
- (org-backward-paragraph)
- (looking-at "P3")))
- (should
- (org-test-with-temp-text "P1\n\nP2\n\nP3"
- (goto-char (point-max))
- (beginning-of-line)
- (org-backward-paragraph)
- (looking-at "P2")))
-
- (should
- (org-test-with-temp-text "P1\n\n#+BEGIN_CENTER\nP2\n#+END_CENTER\nP3"
- (goto-char (point-max))
- (beginning-of-line)
- (org-backward-paragraph)
- (looking-at "P2")))
-
- (should
- (org-test-with-temp-text "* H1\n P1\n* H2"
- (org-cycle)
- (goto-char (point-max))
- (beginning-of-line)
- (org-backward-paragraph)
- (bobp)))
-
- (should
- (org-test-with-temp-text "P1\n#+name: n\n#+caption: c1\n#+caption: c2\nP2"
- (search-forward "c2")
- (org-backward-paragraph)
- (looking-at "#\\+name")))
-
-
- (should
- (org-test-with-temp-text "- line1\n\n line2"
- (goto-char (point-max))
- (beginning-of-line)
- (org-backward-paragraph)
- (looking-at "- line1")))
- (should
- (org-test-with-temp-text "[fn:1] line1\n\n line2"
- (goto-char (point-max))
- (beginning-of-line)
- (org-backward-paragraph)
- (looking-at "\\[fn:1\\] line1")))
-
-
- (should
- (org-test-with-temp-text "| a | b |\n| c | d |\nP1"
- (goto-char (point-max))
- (beginning-of-line)
- (org-backward-paragraph)
- (bobp)))
- (should
- (org-test-with-temp-text "* H\n:PROPERTIES:\n:prop: value\n:END:\n<point>P1"
- (org-backward-paragraph)
- (looking-at ":PROPERTIES:")))
-
- (should
- (org-test-with-temp-text "#+BEGIN_VERSE\nL1\n\nL2\n\nL3\n#+END_VERSE"
- (search-forward "L3")
- (beginning-of-line)
- (org-backward-paragraph)
- (looking-at "L2")))
- (should
- (org-test-with-temp-text "#+BEGIN_SRC\nL1\n\nL2\n\nL3#+END_SRC"
- (search-forward "L3")
- (beginning-of-line)
- (org-backward-paragraph)
- (looking-at "L2"))))
- (ert-deftest test-org/forward-element ()
- "Test `org-forward-element' specifications."
-
- (org-test-with-temp-text "Some text\n"
- (goto-char (point-max))
- (should-error (org-forward-element)))
-
- (org-test-with-temp-text "First paragraph.\n\n\nSecond paragraph."
- (org-forward-element)
- (should (looking-at (regexp-quote "Second paragraph."))))
-
- (org-test-with-temp-text "
- * Head 1
- ** Head 1.1
- *** Head 1.1.1
- ** Head 1.2"
-
-
- (goto-line 3)
- (org-forward-element)
- (should (looking-at (regexp-quote "** Head 1.2")))
-
-
- (goto-line 3)
- (org-forward-element)
- (should (looking-at (regexp-quote "** Head 1.2"))))
-
- (org-test-with-temp-text
- "#+BEGIN_CENTER\nInside.\n#+END_CENTER\n\nOutside."
-
- (org-forward-element)
- (should (looking-at (regexp-quote "Outside.")))
-
-
- (goto-line 2)
- (org-forward-element)
- (should (looking-at (regexp-quote "Outside."))))
-
- (org-test-with-temp-text "
- - item1
- - sub1
- - sub2
- - sub3
- Inner paragraph.
- - item2
- Outside."
-
-
- (goto-line 2)
- (org-forward-element)
- (should (looking-at (regexp-quote "Outside.")))
-
-
- (goto-line 2)
- (forward-char)
- (org-forward-element)
- (should (looking-at "- item2"))
- (goto-line 4)
- (forward-char)
- (org-forward-element)
- (should (looking-at " - sub2"))
-
- (goto-line 4)
- (org-forward-element)
- (should (looking-at (regexp-quote " Inner paragraph.")))
-
- (goto-line 8)
- (org-forward-element)
- (should (looking-at (regexp-quote " Inner paragraph.")))
-
- (goto-line 6)
- (org-forward-element)
- (should (looking-at " - sub3"))))
- (ert-deftest test-org/backward-element ()
- "Test `org-backward-element' specifications."
-
- (org-test-with-temp-text " \nParagraph."
- (should-error (org-backward-element)))
-
- (should
- (org-test-with-temp-text "\n#+TITLE: test"
- (progn (forward-line)
- (org-backward-element)
- (bobp))))
-
- (org-test-with-temp-text "Paragraph1.\n\nParagraph2."
- (goto-line 3)
- (end-of-line)
- (org-backward-element)
- (should (looking-at (regexp-quote "Paragraph2."))))
-
- (org-test-with-temp-text "
- * Head 1
- ** Head 1.1
- *** Head 1.1.1
- ** Head 1.2"
-
-
- (goto-line 5)
- (org-backward-element)
- (should (looking-at (regexp-quote "** Head 1.1")))
-
-
- (goto-line 3)
- (org-backward-element)
- (should (looking-at (regexp-quote "* Head 1")))
-
- (goto-line 2)
- (should-error (org-backward-element)))
-
-
- (org-test-with-temp-text "Before.\n#+BEGIN_CENTER\nInside.\n#+END_CENTER"
- (goto-line 3)
- (org-backward-element)
- (should (looking-at "#\\+BEGIN_CENTER")))
-
-
- (should
- (org-test-with-temp-text "#+TITLE: test\n* Headline\n\nParagraph"
- (progn (goto-char (point-max))
- (beginning-of-line)
- (org-backward-element)
- (org-at-heading-p))))
-
- (org-test-with-temp-text "
- - item1
- - sub1
- - sub2
- - sub3
- Inner paragraph.
- - item2
- Outside."
-
-
- (goto-line 4)
- (org-backward-element)
- (should (looking-at "item1"))
-
- (goto-line 8)
- (org-backward-element)
- (should (looking-at " - sub2"))
- (goto-line 12)
- (org-backward-element)
- (should (looking-at "- item1"))
-
-
- (goto-line 10)
- (org-backward-element)
- (should (looking-at " - sub1"))
- (goto-line 15)
- (org-backward-element)
- (should (looking-at "- item1"))
-
-
- (goto-line 14)
- (org-backward-element)
- (should (looking-at "- item1"))))
- (ert-deftest test-org/up-element ()
- "Test `org-up-element' specifications."
-
- (org-test-with-temp-text "Paragraph."
- (should-error (org-up-element)))
- (org-test-with-temp-text "* Head1\n* Head2"
- (goto-line 2)
- (should-error (org-up-element)))
- (org-test-with-temp-text "Paragraph1.\n\nParagraph2."
- (goto-line 3)
- (should-error (org-up-element)))
-
- (org-test-with-temp-text "* Head1\n** Sub-Head1\n** Sub-Head2"
- (goto-line 3)
- (org-up-element)
- (should (looking-at "\\* Head1")))
-
- (org-test-with-temp-text
- "Before.\n#+BEGIN_CENTER\nParagraph1\nParagraph2\n#+END_CENTER\n"
- (goto-line 3)
- (org-up-element)
- (should (looking-at "#\\+BEGIN_CENTER")))
-
- (org-test-with-temp-text "* Top
- - item1
- - sub1
- - sub2
- Paragraph within sub2.
- - item2"
-
- (goto-line 8)
- (org-up-element)
- (should (looking-at " - sub2"))
-
- (goto-line 4)
- (org-up-element)
- (should (looking-at "- item1"))
-
- (goto-line 10)
- (org-up-element)
- (should (looking-at "- item1"))
-
-
- (goto-line 2)
- (org-up-element)
- (should (looking-at "\\* Top"))))
- (ert-deftest test-org/down-element ()
- "Test `org-down-element' specifications."
-
- (org-test-with-temp-text "Paragraph."
- (should-error (org-down-element)))
-
- (org-test-with-temp-text "* Headline"
- (should-error (org-down-element)))
-
- (org-test-with-temp-text "- Item 1\n - Item 1.1\n - Item 2.2"
- (goto-line 2)
- (org-down-element)
- (should (looking-at " - Item 1.1")))
- (org-test-with-temp-text "#+NAME: list\n- Item 1"
- (org-down-element)
- (should (looking-at " Item 1")))
-
- (org-test-with-temp-text "#+NAME: table\n| a | b |"
- (org-down-element)
- (should (looking-at " a | b |")))
-
- (org-test-with-temp-text "#+BEGIN_CENTER\nParagraph.\n#+END_CENTER"
- (org-down-element)
- (should (looking-at "Paragraph"))))
- (ert-deftest test-org/drag-element-backward ()
- "Test `org-drag-element-backward' specifications."
-
- (should
- (equal
- "#+key2: val2\n#+key1: val1\n#+key3: val3"
- (org-test-with-temp-text "#+key1: val1\n<point>#+key2: val2\n#+key3: val3"
- (org-drag-element-backward)
- (buffer-string))))
- (should
- (equal
- "#+BEGIN_CENTER\n#+B: 2\n#+A: 1\n#+END_CENTER"
- (org-test-with-temp-text
- "#+BEGIN_CENTER\n#+A: 1\n<point>#+B: 2\n#+END_CENTER"
- (org-drag-element-backward)
- (buffer-string))))
-
- (should
- (equal "Paragraph 2\n\n\nPara1\n\nPara3"
- (org-test-with-temp-text "Para1\n\n\n<point>Paragraph 2\n\nPara3"
- (org-drag-element-backward)
- (buffer-string))))
-
- (should
- (org-test-with-temp-text "#+key1: v\n#+key<point>2: v\n#+key3: v"
- (org-drag-element-backward)
- (org-looking-at-p "2")))
-
- (should-error
- (org-test-with-temp-text "Paragraph 1.\n\nParagraph 2."
- (org-drag-element-backward)))
-
- (should-error
- (org-test-with-temp-text "#+BEGIN_CENTER\nTest.\n#+END_CENTER"
- (forward-line)
- (org-drag-element-backward)))
-
-
- (should-error
- (org-test-with-temp-text "Test.\n* Head 1"
- (forward-line)
- (org-drag-element-backward)))
-
- (should
- (equal '((63 . 82) (26 . 48))
- (org-test-with-temp-text "
- #+BEGIN_CENTER
- Text.
- #+END_CENTER
- - item 1
- #+BEGIN_QUOTE
- Text.
- #+END_QUOTE"
- (while (search-forward "BEGIN_" nil t) (org-cycle))
- (search-backward "- item 1")
- (org-drag-element-backward)
- (mapcar (lambda (ov) (cons (overlay-start ov) (overlay-end ov)))
- (overlays-in (point-min) (point-max)))))))
- (ert-deftest test-org/drag-element-forward ()
- "Test `org-drag-element-forward' specifications."
-
- (org-test-with-temp-text "Paragraph 1.\n\nParagraph 2."
- (goto-line 3)
- (should-error (org-drag-element-forward)))
-
- (org-test-with-temp-text "#+BEGIN_CENTER\nTest.\n#+END_CENTER"
- (forward-line)
- (should-error (org-drag-element-forward)))
-
-
- (org-test-with-temp-text "Test.\n* Head 1"
- (should-error (org-drag-element-forward)))
-
-
- (org-test-with-temp-text "Paragraph 1\n\n\nPara2\n\nPara3"
- (search-forward "graph")
- (org-drag-element-forward)
- (should (equal (buffer-string) "Para2\n\n\nParagraph 1\n\nPara3"))
- (should (looking-at " 1")))
-
- (org-test-with-temp-text "
- #+BEGIN_CENTER
- Text.
- #+END_CENTER
- - item 1
- #+BEGIN_QUOTE
- Text.
- #+END_QUOTE"
- (while (search-forward "BEGIN_" nil t) (org-cycle))
- (search-backward "#+BEGIN_CENTER")
- (org-drag-element-forward)
- (should
- (equal
- '((63 . 82) (26 . 48))
- (mapcar (lambda (ov) (cons (overlay-start ov) (overlay-end ov)))
- (overlays-in (point-min) (point-max)))))))
- (ert-deftest test-org/next-block ()
- "Test `org-next-block' specifications."
-
- (should
- (org-test-with-temp-text "Paragraph\n#+BEGIN_CENTER\ncontents\n#+END_CENTER"
- (org-next-block 1)
- (looking-at "#\\+BEGIN_CENTER")))
-
- (should
- (org-test-with-temp-text "Paragraph\n#+begin_center\ncontents\n#+end_center"
- (let ((case-fold-search nil))
- (org-next-block 1)
- (looking-at "#\\+begin_center"))))
-
- (should
- (org-test-with-temp-text
- "#+BEGIN_QUOTE\n#+END_QUOTE\n#+BEGIN_CENTER\n#+END_CENTER"
- (org-next-block 1)
- (looking-at "#\\+BEGIN_CENTER")))
-
- (should-error
- (org-test-with-temp-text "Paragraph"
- (org-next-block 1)))
-
- (should
- (org-test-with-temp-text
- "Start\n#+BEGIN_CENTER\nA\n#+END_CENTER\n#+BEGIN_QUOTE\nB\n#+END_QUOTE"
- (org-next-block 2)
- (looking-at "#\\+BEGIN_QUOTE")))
-
- (should
- (org-test-with-temp-text
- "Start\n#+BEGIN_CENTER\nA\n#+END_CENTER\n#+BEGIN_QUOTE\nB\n#+END_QUOTE"
- (org-next-block 1 nil "^[ \t]*#\\+BEGIN_QUOTE")
- (looking-at "#\\+BEGIN_QUOTE")))
-
- (should
- (org-test-with-temp-text
- "Start\n#+BEGIN_CENTER\nA\n#+END_CENTER\n#+begin_quote\nB\n#+end_quote"
- (let ((case-fold-search nil))
- (org-next-block 1 nil "^[ \t]*#\\+BEGIN_QUOTE")
- (looking-at "#\\+begin_quote")))))
- (ert-deftest test-org/previous-block ()
- "Test `org-previous-block' specifications."
-
- (should
- (org-test-with-temp-text "#+BEGIN_CENTER\ncontents\n#+END_CENTER\n<point>"
- (org-previous-block 1)
- (looking-at "#\\+BEGIN_CENTER")))
-
- (should
- (org-test-with-temp-text "#+begin_center\ncontents\n#+end_center\n<point>"
- (let ((case-fold-search nil))
- (org-previous-block 1)
- (looking-at "#\\+begin_center"))))
-
- (should
- (org-test-with-temp-text
- "#+BEGIN_QUOTE\n#+END_QUOTE\n#+BEGIN_CENTER<point>\n#+END_CENTER"
- (org-previous-block 1)
- (looking-at "#\\+BEGIN_QUOTE")))
-
- (should-error
- (org-test-with-temp-text "Paragraph<point>"
- (org-previous-block 1)))
-
- (should
- (org-test-with-temp-text
- "#+BEGIN_CENTER\nA\n#+END_CENTER\n#+BEGIN_QUOTE\nB\n#+END_QUOTE\n<point>"
- (org-previous-block 2)
- (looking-at "#\\+BEGIN_CENTER")))
-
- (should
- (org-test-with-temp-text
- "#+BEGIN_CENTER\nA\n#+END_CENTER\n#+BEGIN_QUOTE\nB\n#+END_QUOTE\n<point>"
- (org-previous-block 1 "^[ \t]*#\\+BEGIN_QUOTE")
- (looking-at "#\\+BEGIN_QUOTE")))
-
- (should
- (org-test-with-temp-text
- "#+BEGIN_CENTER\nA\n#+END_CENTER\n#+begin_quote\nB\n#+end_quote\n<point>"
- (let ((case-fold-search nil))
- (org-next-block 1 "^[ \t]*#\\+BEGIN_QUOTE")
- (looking-at "#\\+begin_quote")))))
- (ert-deftest test-org/demote ()
- "Test `org-demote' specifications."
-
- (should
- (= 2
- (org-test-with-temp-text "* H"
- (let ((org-odd-levels-only nil)) (org-demote))
- (org-current-level))))
- (should
- (= 3
- (org-test-with-temp-text "* H"
- (let ((org-odd-levels-only t)) (org-demote))
- (org-current-level))))
-
- (should
- (org-test-with-temp-text "* H :tag:"
- (let ((org-tags-column 10)
- (org-auto-align-tags t)
- (org-odd-levels-only nil))
- (org-demote))
- (org-move-to-column 10)
- (org-looking-at-p ":tag:$")))
- (should-not
- (org-test-with-temp-text "* H :tag:"
- (let ((org-tags-column 10)
- (org-auto-align-tags nil)
- (org-odd-levels-only nil))
- (org-demote))
- (org-move-to-column 10)
- (org-looking-at-p ":tag:$")))
-
-
- (should
- (= 3
- (org-test-with-temp-text "* H\n SCHEDULED: <2014-03-04 tue.>"
- (let ((org-odd-levels-only nil)
- (org-adapt-indentation t))
- (org-demote))
- (forward-line)
- (org-get-indentation))))
- (should
- (= 3
- (org-test-with-temp-text "* H\n :PROPERTIES:\n :FOO: Bar\n :END:"
- (let ((org-odd-levels-only nil)
- (org-adapt-indentation t))
- (org-demote))
- (forward-line)
- (org-get-indentation))))
- (should-not
- (= 3
- (org-test-with-temp-text "* H\n SCHEDULED: <2014-03-04 tue.>"
- (let ((org-odd-levels-only nil)
- (org-adapt-indentation nil))
- (org-demote))
- (forward-line)
- (org-get-indentation))))
-
-
-
- (should
- (= 3
- (org-test-with-temp-text "* H\n Paragraph"
- (let ((org-odd-levels-only nil)
- (org-adapt-indentation t))
- (org-demote))
- (forward-line)
- (org-get-indentation))))
- (should
- (= 2
- (org-test-with-temp-text "* H\n Paragraph"
- (let ((org-odd-levels-only nil)
- (org-adapt-indentation nil))
- (org-demote))
- (forward-line)
- (org-get-indentation))))
- (should
- (zerop
- (org-test-with-temp-text "* H\n[fn:1] def line 1\ndef line 2"
- (let ((org-odd-levels-only nil)
- (org-adapt-indentation t))
- (org-demote))
- (goto-char (point-max))
- (org-get-indentation))))
- (should
- (= 3
- (org-test-with-temp-text "* H\n[fn:1] Def.\n\n\n After def."
- (let ((org-odd-levels-only nil)
- (org-adapt-indentation t))
- (org-demote))
- (goto-char (point-max))
- (org-get-indentation))))
- (when (featurep 'org-inlinetask)
- (should
- (zerop
- (let ((org-inlinetask-min-level 5)
- (org-adapt-indentation t))
- (org-test-with-temp-text "* H\n***** I\n***** END"
- (org-demote)
- (forward-line)
- (org-get-indentation))))))
- (when (featurep 'org-inlinetask)
- (should
- (= 3
- (let ((org-inlinetask-min-level 5)
- (org-adapt-indentation t))
- (org-test-with-temp-text "* H\n***** I\n Contents\n***** END"
- (org-demote)
- (forward-line 2)
- (org-get-indentation))))))
-
-
-
- (should-not
- (zerop
- (org-test-with-temp-text "* H\n#+BEGIN_SRC emacs-lisp\n(+ 1 1)\n#+END_SRC"
- (let ((org-adapt-indentation t)
- (org-src-preserve-indentation nil))
- (org-demote))
- (forward-line 2)
- (org-get-indentation))))
- (should
- (zerop
- (org-test-with-temp-text "* H\n#+BEGIN_EXAMPLE\n(+ 1 1)\n#+END_EXAMPLE"
- (let ((org-adapt-indentation t)
- (org-src-preserve-indentation t))
- (org-demote))
- (forward-line 2)
- (org-get-indentation))))
- (should
- (zerop
- (org-test-with-temp-text "* H\n#+BEGIN_SRC emacs-lisp\n(+ 1 1)\n#+END_SRC"
- (let ((org-adapt-indentation t)
- (org-src-preserve-indentation t))
- (org-demote))
- (forward-line 2)
- (org-get-indentation))))
- (should
- (zerop
- (org-test-with-temp-text
- "* H\n#+BEGIN_SRC emacs-lisp -i\n(+ 1 1)\n#+END_SRC"
- (let ((org-adapt-indentation t)
- (org-src-preserve-indentation nil))
- (org-demote))
- (forward-line 2)
- (org-get-indentation)))))
- (ert-deftest test-org/promote ()
- "Test `org-promote' specifications."
-
-
-
- (should-error
- (org-test-with-temp-text "* H"
- (let ((org-allow-promoting-top-level-subtree nil)) (org-promote))))
- (should
- (equal "# H"
- (org-test-with-temp-text "* H"
- (let ((org-allow-promoting-top-level-subtree t)) (org-promote))
- (buffer-string))))
-
-
- (should
- (= 2
- (org-test-with-temp-text "*** H"
- (let ((org-odd-levels-only nil)) (org-promote))
- (org-current-level))))
- (should
- (= 1
- (org-test-with-temp-text "*** H"
- (let ((org-odd-levels-only t)) (org-promote))
- (org-current-level))))
-
- (should
- (org-test-with-temp-text "** H :tag:"
- (let ((org-tags-column 10)
- (org-auto-align-tags t)
- (org-odd-levels-only nil))
- (org-promote))
- (org-move-to-column 10)
- (org-looking-at-p ":tag:$")))
- (should-not
- (org-test-with-temp-text "** H :tag:"
- (let ((org-tags-column 10)
- (org-auto-align-tags nil)
- (org-odd-levels-only nil))
- (org-promote))
- (org-move-to-column 10)
- (org-looking-at-p ":tag:$")))
-
-
- (should
- (= 2
- (org-test-with-temp-text "** H\n SCHEDULED: <2014-03-04 tue.>"
- (let ((org-odd-levels-only nil)
- (org-adapt-indentation t))
- (org-promote))
- (forward-line)
- (org-get-indentation))))
- (should
- (= 2
- (org-test-with-temp-text "** H\n :PROPERTIES:\n :FOO: Bar\n :END:"
- (let ((org-odd-levels-only nil)
- (org-adapt-indentation t))
- (org-promote))
- (forward-line)
- (org-get-indentation))))
- (should-not
- (= 2
- (org-test-with-temp-text "** H\n SCHEDULED: <2014-03-04 tue.>"
- (let ((org-odd-levels-only nil)
- (org-adapt-indentation nil))
- (org-promote))
- (forward-line)
- (org-get-indentation))))
-
-
-
- (should
- (= 2
- (org-test-with-temp-text "** H\n Paragraph"
- (let ((org-odd-levels-only nil)
- (org-adapt-indentation t))
- (org-promote))
- (forward-line)
- (org-get-indentation))))
- (should-not
- (= 2
- (org-test-with-temp-text "** H\n Paragraph"
- (let ((org-odd-levels-only nil)
- (org-adapt-indentation nil))
- (org-promote))
- (forward-line)
- (org-get-indentation))))
- (should
- (= 2
- (org-test-with-temp-text "** H\n Paragraph\n[fn:1] line1\nline2"
- (let ((org-odd-levels-only nil)
- (org-adapt-indentation t))
- (org-promote))
- (forward-line)
- (org-get-indentation))))
- (when (featurep 'org-inlinetask)
- (should
- (zerop
- (let ((org-inlinetask-min-level 5)
- (org-adapt-indentation t))
- (org-test-with-temp-text "** H\n***** I\n***** END"
- (org-promote)
- (forward-line)
- (org-get-indentation))))))
- (when (featurep 'org-inlinetask)
- (should
- (= 2
- (let ((org-inlinetask-min-level 5)
- (org-adapt-indentation t))
- (org-test-with-temp-text "** H\n***** I\n Contents\n***** END"
- (org-promote)
- (forward-line 2)
- (org-get-indentation))))))
-
-
- (should
- (= 3
- (org-test-with-temp-text "** H\n Paragraph\n [fn:1] Def."
- (let ((org-odd-levels-only nil)
- (org-adapt-indentation t))
- (org-promote))
- (forward-line)
- (org-get-indentation))))
- (should
- (= 3
- (org-test-with-temp-text "** H\n Paragraph\n * list."
- (let ((org-odd-levels-only nil)
- (org-adapt-indentation t))
- (org-promote))
- (forward-line)
- (org-get-indentation))))
-
-
-
- (should-not
- (zerop
- (org-test-with-temp-text
- "** H\n #+BEGIN_SRC emacs-lisp\n(+ 1 1)\n #+END_SRC"
- (let ((org-adapt-indentation t)
- (org-src-preserve-indentation nil)
- (org-odd-levels-only nil))
- (org-promote))
- (forward-line)
- (org-get-indentation))))
- (should
- (zerop
- (org-test-with-temp-text
- "** H\n #+BEGIN_EXAMPLE\nContents\n #+END_EXAMPLE"
- (let ((org-adapt-indentation t)
- (org-src-preserve-indentation t)
- (org-odd-levels-only nil))
- (org-promote))
- (forward-line)
- (org-get-indentation))))
- (should
- (zerop
- (org-test-with-temp-text
- "** H\n #+BEGIN_SRC emacs-lisp\n(+ 1 1)\n #+END_SRC"
- (let ((org-adapt-indentation t)
- (org-src-preserve-indentation t)
- (org-odd-levels-only nil))
- (org-promote))
- (forward-line)
- (org-get-indentation))))
- (should
- (zerop
- (org-test-with-temp-text
- "** H\n #+BEGIN_SRC emacs-lisp -i\n(+ 1 1)\n #+END_SRC"
- (let ((org-adapt-indentation t)
- (org-src-preserve-indentation nil)
- (org-odd-levels-only nil))
- (org-promote))
- (forward-line)
- (org-get-indentation)))))
- (ert-deftest test-org/at-planning-p ()
- "Test `org-at-planning-p' specifications."
-
- (should
- (org-test-with-temp-text "* Headline\n<point>DEADLINE: <2014-03-04 tue.>"
- (org-at-planning-p)))
- (should-not
- (org-test-with-temp-text "DEADLINE: <2014-03-04 tue.>"
- (org-at-planning-p)))
-
- (when (featurep 'org-inlinetask)
- (should
- (org-test-with-temp-text
- "*** Inlinetask\n<point>DEADLINE: <2014-03-04 tue.>\n*** END"
- (let ((org-inlinetask-min-level 3)) (org-at-planning-p))))
- (should-not
- (org-test-with-temp-text
- "*** Inlinetask\n<point>DEADLINE: <2014-03-04 tue.>"
- (let ((org-inlinetask-min-level 3)) (org-at-planning-p))))
- (should-not
- (org-test-with-temp-text
- "* Headline\n*** Inlinetask\n<point>DEADLINE: <2014-03-04 tue.>"
- (let ((org-inlinetask-min-level 3)) (org-at-planning-p))))
- (should-not
- (org-test-with-temp-text
- "* Headline\n*** Inlinetask\n*** END\n<point>DEADLINE: <2014-03-04 tue.>"
- (let ((org-inlinetask-min-level 3)) (org-at-planning-p))))))
- (ert-deftest test-org/buffer-property-keys ()
- "Test `org-buffer-property-keys' specifications."
-
- (should
- (equal '("A" "B")
- (org-test-with-temp-text "
- * H1
- :PROPERTIES:
- :A: 1
- :END:
- * H2
- :PROPERTIES:
- :B: 1
- :END:"
- (org-buffer-property-keys))))
-
- (should
- (equal '("A" "B")
- (org-test-with-temp-text "
- * H1
- :PROPERTIES:
- :A: 1
- :END:
- ** H2
- :PROPERTIES:
- :B: 1
- :END:"
- (org-buffer-property-keys))))
-
- (should
- (equal '("A" "B")
- (org-test-with-temp-text "* H\n:PROPERTIES:\n:A: 1\n:B: 2\n:END:"
- (org-buffer-property-keys))))
-
- (should
- (equal '("A")
- (org-test-with-temp-text "* H\n:PROPERTIES:\n:A: 1\n:A+: 2\n:END:"
- (org-buffer-property-keys))))
-
- (should
- (equal '("A" "B")
- (org-test-with-temp-text "#+COLUMNS: %25ITEM %A %20B"
- (org-buffer-property-keys nil nil t))))
- (should
- (equal '("A" "B" "COLUMNS")
- (org-test-with-temp-text
- "* H\n:PROPERTIES:\n:COLUMNS: %25ITEM %A %20B\n:END:"
- (org-buffer-property-keys nil nil t)))))
- (ert-deftest test-org/property-values ()
- "Test `org-property-values' specifications."
-
- (should
- (equal '("2" "1")
- (org-test-with-temp-text
- "* H\n:PROPERTIES:\n:A: 1\n:END:\n* H\n:PROPERTIES:\n:A: 2\n:END:"
- (org-property-values "A"))))
-
- (should-not
- (org-test-with-temp-text
- "* H1\n:PROPERTIES:\n:A:\n:END:\n* H2\n:PROPERTIES:\n:A: \n:END:"
- (org-property-values "A")))
-
- (should
- (equal '("1 2")
- (org-test-with-temp-text "* H\n:PROPERTIES:\n:A: 1\n:A+: 2\n:END:"
- (org-property-values "A")))))
- (ert-deftest test-org/find-property ()
- "Test `org-find-property' specifications."
-
- (should
- (= 1
- (org-test-with-temp-text "* H\n:PROPERTIES:\n:PROP: value\n:END:"
- (org-find-property "prop"))))
-
- (should
- (= 27
- (org-test-with-temp-text
- "* H1\n:DRAWER:\n:A: 1\n:END:\n* H2\n:PROPERTIES:\n:A: 1\n:END:"
- (org-find-property "A"))))
-
- (should
- (= 1
- (org-test-with-temp-text
- "* H1\n:PROPERTIES:\n:A: 1\n:END:\n* H2\n:PROPERTIES:\n:<point>A: 1\n:END:"
- (org-find-property "A"))))
-
- (should
- (= 31
- (org-test-with-temp-text
- "* H1\n:PROPERTIES:\n:A: 1\n:END:\n* H2\n:PROPERTIES:\n:<point>A: 1\n:END:"
- (org-narrow-to-subtree)
- (org-find-property "A"))))
-
- (should-not
- (org-test-with-temp-text "* H\n:PROPERTIES:\n:A: 1\n:END:"
- (org-find-property "A" "2")))
- (should
- (= 31
- (org-test-with-temp-text
- "* H1\n:PROPERTIES:\n:A: 1\n:END:\n* H2\n:PROPERTIES:\n:A: 2\n:END:"
- (org-find-property "A" "2"))))
-
- (should
- (= 31
- (org-test-with-temp-text
- "* H1\n:PROPERTIES:\n:A: 1\n:END:\n* H2\n:PROPERTIES:\n:A: nil\n:END:"
- (org-find-property "A" "nil")))))
- (ert-deftest test-org/entry-delete ()
- "Test `org-entry-delete' specifications."
-
- (should
- (string-match
- " *:PROPERTIES:\n *:B: +2\n *:END:"
- (org-test-with-temp-text "* H\n:PROPERTIES:\n:A: 1\n:B: 2\n:END:"
- (org-entry-delete (point) "A")
- (buffer-string))))
-
- (should-not
- (string-match
- ":A"
- (org-test-with-temp-text "* H\n:PROPERTIES:\n:A: 1\n:A+: 2\n:B: 3\n:END:"
- (org-entry-delete (point) "A")
- (buffer-string))))
-
- (should-not
- (string-match
- ":PROPERTIES:"
- (org-test-with-temp-text "* H\n:PROPERTIES:\n:A: 1\n:END:\nParagraph"
- (org-entry-delete (point) "A")
- (buffer-string))))
-
- (should
- (org-test-with-temp-text "* H\n:PROPERTIES:\n:A: 1\n:B: 2\n:END:"
- (org-entry-delete (point) "A")))
- (should-not
- (org-test-with-temp-text "* H\n:PROPERTIES:\n:A: 1\n:B: 2\n:END:"
- (org-entry-delete (point) "C"))))
- (ert-deftest test-org/entry-get ()
- "Test `org-entry-get' specifications."
-
- (should
- (equal "1"
- (org-test-with-temp-text "* H\n:PROPERTIES:\n:A: 1\n:END:"
- (org-entry-get (point) "A"))))
-
- (should
- (equal "1"
- (org-test-with-temp-text "* H\n:PROPERTIES:\n:A: 1\n:END:"
- (org-entry-get (point) "a"))))
-
- (should
- (equal "1 2 3"
- (org-test-with-temp-text
- "* H\n:PROPERTIES:\n:A+: 2\n:A: 1\n:A+: 3\n:END:"
- (org-entry-get (point) "A"))))
-
- (should
- (equal ""
- (org-test-with-temp-text "* H\n:PROPERTIES:\n:A:\n:END:"
- (org-entry-get (point) "A"))))
-
-
- (should-not
- (org-test-with-temp-text "* H\n:PROPERTIES:\n:A: nil\n:END:"
- (org-entry-get (point) "A")))
- (should
- (equal "nil"
- (org-test-with-temp-text "* H\n:PROPERTIES:\n:A: nil\n:END:"
- (org-entry-get (point) "A" nil t))))
-
-
- (should-not
- (org-test-with-temp-text "* H\n:PROPERTIES:\n:A: 1\n:END:"
- (org-entry-get (point) "B")))
- (should-not
- (org-test-with-temp-text "* H\n:PROPERTIES:\n:A: 1\n:END:"
- (org-entry-get (point) "B" nil t)))
-
- (should
- (equal
- "1"
- (org-test-with-temp-text "* H\n:PROPERTIES:\n:A: 1\n:END:\n** <point>H2"
- (org-entry-get (point) "A" t))))
- (should
- (equal
- "1"
- (org-test-with-temp-text "* H\n:PROPERTIES:\n:A: 1\n:END:\n** <point>H2"
- (let ((org-use-property-inheritance t))
- (org-entry-get (point) "A" 'selective)))))
- (should-not
- (org-test-with-temp-text "* H\n:PROPERTIES:\n:A: 1\n:END:\n** <point>H2"
- (let ((org-use-property-inheritance nil))
- (org-entry-get (point) "A" 'selective)))))
- (ert-deftest test-org/entry-properties ()
- "Test `org-entry-properties' specifications."
-
- (should
- (equal "* H"
- (org-test-with-temp-text "* TODO H"
- (cdr (assoc "ITEM" (org-entry-properties nil "ITEM"))))))
- (should
- (equal "* H"
- (org-test-with-temp-text "* TODO H"
- (cdr (assoc "ITEM" (org-entry-properties))))))
-
- (should
- (equal "TODO"
- (org-test-with-temp-text "* TODO H"
- (cdr (assoc "TODO" (org-entry-properties nil "TODO"))))))
- (should
- (equal "TODO"
- (org-test-with-temp-text "* TODO H"
- (cdr (assoc "TODO" (org-entry-properties))))))
- (should-not
- (org-test-with-temp-text "* H"
- (assoc "TODO" (org-entry-properties nil "TODO"))))
-
- (should
- (equal "A"
- (org-test-with-temp-text "* [#A] H"
- (cdr (assoc "PRIORITY" (org-entry-properties nil "PRIORITY"))))))
- (should
- (equal "A"
- (org-test-with-temp-text "* [#A] H"
- (cdr (assoc "PRIORITY" (org-entry-properties))))))
- (should-not
- (org-test-with-temp-text "* H"
- (assoc "PRIORITY" (org-entry-properties nil "PRIORITY"))))
-
- (should
- (org-test-with-temp-text-in-file "* H\nParagraph"
- (org-file-equal-p (cdr (assoc "FILE" (org-entry-properties nil "FILE")))
- (buffer-file-name))))
- (should
- (org-test-with-temp-text-in-file "* H\nParagraph"
- (org-file-equal-p (cdr (assoc "FILE" (org-entry-properties)))
- (buffer-file-name))))
- (should-not
- (org-test-with-temp-text "* H\nParagraph"
- (cdr (assoc "FILE" (org-entry-properties nil "FILE")))))
-
- (should
- (equal ":tag1:tag2:"
- (org-test-with-temp-text "* H :tag1:tag2:"
- (cdr (assoc "TAGS" (org-entry-properties nil "TAGS"))))))
- (should
- (equal ":tag1:tag2:"
- (org-test-with-temp-text "* H :tag1:tag2:"
- (cdr (assoc "TAGS" (org-entry-properties))))))
- (should-not
- (org-test-with-temp-text "* H"
- (cdr (assoc "TAGS" (org-entry-properties nil "TAGS")))))
-
- (should
- (equal ":tag1:tag2:"
- (org-test-with-temp-text "* H :tag1:\n<point>** H2 :tag2:"
- (cdr (assoc "ALLTAGS" (org-entry-properties nil "ALLTAGS"))))))
- (should
- (equal ":tag1:tag2:"
- (org-test-with-temp-text "* H :tag1:\n<point>** H2 :tag2:"
- (cdr (assoc "ALLTAGS" (org-entry-properties))))))
- (should-not
- (org-test-with-temp-text "* H"
- (cdr (assoc "ALLTAGS" (org-entry-properties nil "ALLTAGS")))))
-
- (should
- (equal "t"
- (org-test-with-temp-text "* Blocked\n** DONE one\n** TODO two"
- (let ((org-enforce-todo-dependencies t)
- (org-blocker-hook
- '(org-block-todo-from-children-or-siblings-or-parent)))
- (cdr (assoc "BLOCKED" (org-entry-properties nil "BLOCKED")))))))
- (should
- (equal "t"
- (org-test-with-temp-text "* Blocked\n** DONE one\n** TODO two"
- (let ((org-enforce-todo-dependencies t)
- (org-blocker-hook
- '(org-block-todo-from-children-or-siblings-or-parent)))
- (cdr (assoc "BLOCKED" (org-entry-properties)))))))
- (should
- (equal ""
- (org-test-with-temp-text "* Blocked\n** DONE one\n** DONE two"
- (let ((org-enforce-todo-dependencies t))
- (cdr (assoc "BLOCKED" (org-entry-properties nil "BLOCKED")))))))
-
- (should
- (equal
- "[2012-03-29 thu.]"
- (org-test-with-temp-text "* H\nCLOSED: [2012-03-29 thu.]"
- (cdr (assoc "CLOSED" (org-entry-properties nil "CLOSED"))))))
- (should
- (equal
- "[2012-03-29 thu.]"
- (org-test-with-temp-text "* H\nCLOSED: [2012-03-29 thu.]"
- (cdr (assoc "CLOSED" (org-entry-properties))))))
- (should-not
- (org-test-with-temp-text "* H"
- (cdr (assoc "CLOSED" (org-entry-properties nil "CLOSED")))))
- (should
- (equal
- "<2014-03-04 tue.>"
- (org-test-with-temp-text "* H\nDEADLINE: <2014-03-04 tue.>"
- (cdr (assoc "DEADLINE" (org-entry-properties nil "DEADLINE"))))))
- (should
- (equal
- "<2014-03-04 tue.>"
- (org-test-with-temp-text "* H\nDEADLINE: <2014-03-04 tue.>"
- (cdr (assoc "DEADLINE" (org-entry-properties))))))
- (should-not
- (org-test-with-temp-text "* H"
- (cdr (assoc "DEADLINE" (org-entry-properties nil "DEADLINE")))))
- (should
- (equal
- "<2014-03-04 tue.>"
- (org-test-with-temp-text "* H\nSCHEDULED: <2014-03-04 tue.>"
- (cdr (assoc "SCHEDULED" (org-entry-properties nil "SCHEDULED"))))))
- (should
- (equal
- "<2014-03-04 tue.>"
- (org-test-with-temp-text "* H\nSCHEDULED: <2014-03-04 tue.>"
- (cdr (assoc "SCHEDULED" (org-entry-properties))))))
- (should-not
- (org-test-with-temp-text "* H"
- (cdr (assoc "SCHEDULED" (org-entry-properties nil "SCHEDULED")))))
-
- (should
- (equal "cat"
- (org-test-with-temp-text "#+CATEGORY: cat\n<point>* H"
- (cdr (assoc "CATEGORY" (org-entry-properties))))))
- (should
- (equal "cat"
- (org-test-with-temp-text "#+CATEGORY: cat\n<point>* H"
- (cdr (assoc "CATEGORY" (org-entry-properties nil "CATEGORY"))))))
- (should
- (equal "cat"
- (org-test-with-temp-text "* H\n:PROPERTIES:\n:CATEGORY: cat\n:END:"
- (cdr (assoc "CATEGORY" (org-entry-properties nil "CATEGORY"))))))
- (should
- (equal "cat2"
- (org-test-with-temp-text
- (concat "* H\n:PROPERTIES:\n:CATEGORY: cat1\n:END:"
- "\n"
- "** H2\n:PROPERTIES:\n:CATEGORY: cat2\n:END:<point>")
- (cdr (assoc "CATEGORY" (org-entry-properties nil "CATEGORY"))))))
-
- (should
- (equal "1"
- (org-test-with-temp-text "* H\n:PROPERTIES:\n:A: 1\n:END:"
- (cdr (assoc "A" (org-entry-properties nil 'standard))))))
-
- (should
- (equal "1 2 3"
- (org-test-with-temp-text
- "* H\n:PROPERTIES:\n:A+: 2\n:A: 1\n:A+: 3\n:END:"
- (cdr (assoc "A" (org-entry-properties nil 'standard))))))
- (should
- (equal "1 2 3"
- (org-test-with-temp-text
- "* H\n:PROPERTIES:\n:A+: 2\n:A: 1\n:a+: 3\n:END:"
- (cdr (assoc "A" (org-entry-properties nil 'standard))))))
-
- (should-not
- (org-test-with-temp-text "* H\n:PROPERTIES:\n:TODO: foo\n:END:"
- (cdr (assoc "TODO" (org-entry-properties nil 'standard))))))
- (ert-deftest test-org/entry-put ()
- "Test `org-entry-put' specifications."
-
- (should-error
- (org-test-with-temp-text "* H\n:PROPERTIES:\n:test: 1\n:END:"
- (org-entry-put 1 "test" 2)))
-
- (should
- (string-match (regexp-quote " TODO H")
- (org-test-with-temp-text "#+TODO: TODO | DONE\n<point>* H"
- (org-entry-put (point) "TODO" "TODO")
- (buffer-string))))
- (should
- (string-match (regexp-quote "* H")
- (org-test-with-temp-text "#+TODO: TODO | DONE\n<point>* H"
- (org-entry-put (point) "TODO" nil)
- (buffer-string))))
-
- (should
- (equal "* [#A] H"
- (org-test-with-temp-text "* [#B] H"
- (org-entry-put (point) "PRIORITY" "A")
- (buffer-string))))
- (should
- (equal "* H"
- (org-test-with-temp-text "* [#B] H"
- (org-entry-put (point) "PRIORITY" nil)
- (buffer-string))))
-
- (should
- (string-match "* H\n *SCHEDULED: <2014-03-04 .*?>"
- (org-test-with-temp-text "* H"
- (org-entry-put (point) "SCHEDULED" "2014-03-04")
- (buffer-string))))
- (should
- (string= "* H\n"
- (org-test-with-temp-text "* H\nSCHEDULED: <2014-03-04 tue.>"
- (org-entry-put (point) "SCHEDULED" nil)
- (buffer-string))))
- (should
- (string-match "* H\n *SCHEDULED: <2014-03-03 .*?>"
- (org-test-with-temp-text "* H\nSCHEDULED: <2014-03-04 tue.>"
- (org-entry-put (point) "SCHEDULED" "earlier")
- (buffer-string))))
- (should
- (string-match "^ *SCHEDULED: <2014-03-05 .*?>"
- (org-test-with-temp-text "* H\nSCHEDULED: <2014-03-04 tue.>"
- (org-entry-put (point) "SCHEDULED" "later")
- (buffer-string))))
-
- (should
- (string-match "^ *DEADLINE: <2014-03-04 .*?>"
- (org-test-with-temp-text "* H"
- (org-entry-put (point) "DEADLINE" "2014-03-04")
- (buffer-string))))
- (should
- (string= "* H\n"
- (org-test-with-temp-text "* H\nDEADLINE: <2014-03-04 tue.>"
- (org-entry-put (point) "DEADLINE" nil)
- (buffer-string))))
- (should
- (string-match "^ *DEADLINE: <2014-03-03 .*?>"
- (org-test-with-temp-text "* H\nDEADLINE: <2014-03-04 tue.>"
- (org-entry-put (point) "DEADLINE" "earlier")
- (buffer-string))))
- (should
- (string-match "^ *DEADLINE: <2014-03-05 .*?>"
- (org-test-with-temp-text "* H\nDEADLINE: <2014-03-04 tue.>"
- (org-entry-put (point) "DEADLINE" "later")
- (buffer-string))))
-
- (should
- (string-match "^ *:CATEGORY: cat"
- (org-test-with-temp-text "* H"
- (org-entry-put (point) "CATEGORY" "cat")
- (buffer-string))))
-
- (should
- (string-match "^ *:A: +2$"
- (org-test-with-temp-text "* H\n:PROPERTIES:\n:A: 1\n:END:"
- (org-entry-put (point) "A" "2")
- (buffer-string))))
- (should
- (string-match "^ *:A: +1$"
- (org-test-with-temp-text "* H"
- (org-entry-put (point) "A" "1")
- (buffer-string))))
-
- (should
- (string-match "\\* A\n *:PROPERTIES:"
- (org-test-with-temp-text "* A\n** B"
- (org-entry-put (point) "A" "1")
- (buffer-string)))))
- (ert-deftest test-org/update-radio-target-regexp ()
- "Test `org-update-radio-target-regexp' specifications."
-
- (should
- (eq 'link
- (org-test-with-temp-text "radio\n\nParagraph\n\nradio"
- (save-excursion (goto-char (point-max)) (org-element-context))
- (insert "<<<")
- (search-forward "o")
- (insert ">>>")
- (org-update-radio-target-regexp)
- (goto-char (point-max))
- (org-element-type (org-element-context)))))
-
- (should
- (eq 'link
- (org-test-with-temp-text "radio\n\nParagraph\n\nradio"
- (save-excursion (goto-char (point-max)) (org-element-context))
- (insert "<<<")
- (search-forward "o")
- (insert ">>>")
- (org-update-radio-target-regexp)
- (search-backward "r")
- (delete-char 5)
- (insert "new")
- (org-update-radio-target-regexp)
- (goto-char (point-max))
- (delete-region (line-beginning-position) (point))
- (insert "new")
- (org-element-type (org-element-context))))))
- (ert-deftest test-org/match-sparse-tree ()
- "Test `org-match-sparse-tree' specifications."
-
- (should-not
- (org-test-with-temp-text "* H\n** H1 :tag:"
- (org-match-sparse-tree nil "tag")
- (search-forward "H1")
- (org-invisible-p2)))
- (should
- (org-test-with-temp-text "* H\n** H1 :tag:\n** H2 :tag2:"
- (org-match-sparse-tree nil "tag")
- (search-forward "H2")
- (org-invisible-p2)))
-
- (should-not
- (org-test-with-temp-text "* H\n** H1 :tag1:\n** H2 :tag1:tag2:"
- (org-match-sparse-tree nil "tag1-tag2")
- (search-forward "H1")
- (org-invisible-p2)))
- (should
- (org-test-with-temp-text "* H\n** H1 :tag1:\n** H2 :tag1:tag2:"
- (org-match-sparse-tree nil "tag1-tag2")
- (search-forward "H2")
- (org-invisible-p2)))
-
- (should
- (org-test-with-temp-text "* H\n** H1 :tag1:\n** H2 :tag1:tag2:"
- (org-match-sparse-tree nil "tag1&tag2")
- (search-forward "H1")
- (org-invisible-p2)))
- (should-not
- (org-test-with-temp-text "* H\n** H1 :tag1:\n** H2 :tag1:tag2:"
- (org-match-sparse-tree nil "tag1&tag2")
- (search-forward "H2")
- (org-invisible-p2)))
-
- (should-not
- (org-test-with-temp-text "* H\n** H1 :tag1:\n** H2 :tag1:tag2:"
- (org-match-sparse-tree nil "tag1|tag2")
- (search-forward "H1")
- (org-invisible-p2)))
- (should-not
- (org-test-with-temp-text "* H\n** H1 :tag1:\n** H2 :tag1:tag2:"
- (org-match-sparse-tree nil "tag1|tag2")
- (search-forward "H2")
- (org-invisible-p2)))
-
- (should-not
- (org-test-with-temp-text "* H\n** H1 :tag1:\n** H2 :foo:"
- (org-match-sparse-tree nil "{^tag.*}")
- (search-forward "H1")
- (org-invisible-p2)))
- (should
- (org-test-with-temp-text "* H\n** H1 :tag1:\n** H2 :foo:"
- (org-match-sparse-tree nil "{^tag.*}")
- (search-forward "H2")
- (org-invisible-p2)))
-
- (should-not
- (org-test-with-temp-text
- "#+TAGS: { work : lab }\n* H\n** H1 :work:\n** H2 :lab:"
- (org-match-sparse-tree nil "work")
- (search-forward "H1")
- (org-invisible-p2)))
- (should-not
- (org-test-with-temp-text
- "#+TAGS: { work : lab }\n* H\n** H1 :work:\n** H2 :lab:"
- (org-match-sparse-tree nil "work")
- (search-forward "H2")
- (org-invisible-p2)))
-
- (should-not
- (org-test-with-temp-text
- "#+TAGS: [ work : lab ]\n* H\n** H1 :work:\n** H2 :lab:"
- (org-match-sparse-tree nil "work")
- (search-forward "H1")
- (org-invisible-p2)))
- (should-not
- (org-test-with-temp-text
- "#+TAGS: [ work : lab ]\n* H\n** H1 :work:\n** H2 :lab:"
- (org-match-sparse-tree nil "work")
- (search-forward "H2")
- (org-invisible-p2)))
-
- (should-not
- (org-test-with-temp-text
- "#+TAGS: [ Lev_1 : Lev_2 ]\n
- #+TAGS: [ Lev_2 : Lev_3 ]\n
- #+TAGS: { Lev_3 : Lev_4 }\n
- * H\n** H1 :Lev_1:\n** H2 :Lev_2:\n** H3 :Lev_3:\n** H4 :Lev_4:"
- (org-match-sparse-tree nil "Lev_1")
- (search-forward "H4")
- (org-invisible-p2)))
-
- (should-not
- (org-test-with-temp-text
- "#+TAGS: [ Lev : {Lev_[0-9]} ]\n* H\n** H1 :Lev_1:"
- (org-match-sparse-tree nil "Lev")
- (search-forward "H1")
- (org-invisible-p2)))
- (should
- (org-test-with-temp-text
- "#+TAGS: [ Lev : {Lev_[0-9]} ]\n* H\n** H1 :Lev_n:"
- (org-match-sparse-tree nil "Lev")
- (search-forward "H1")
- (org-invisible-p2)))
-
- (should
- (org-test-with-temp-text
- "* H\n** H1\n:PROPERTIES:\n:A: 1\n:END:\n** H2\n:PROPERTIES:\n:A: 2\n:END:"
- (org-match-sparse-tree nil "A=\"1\"")
- (search-forward "H2")
- (org-invisible-p2)))
- (should-not
- (org-test-with-temp-text "* H1\n** H2\n:PROPERTIES:\n:A: 1\n:END:"
- (org-match-sparse-tree nil "A=\"1\"")
- (search-forward "H2")
- (org-invisible-p2)))
-
- (should-not
- (org-test-with-temp-text "* H1\n** H2\n:PROPERTIES:\n:A: 1\n:END:"
- (org-match-sparse-tree nil "a=\"1\"")
- (search-forward "H2")
- (org-invisible-p2)))
- (should-not
- (org-test-with-temp-text "* H1\n** H2\n:PROPERTIES:\n:a: 1\n:END:"
- (org-match-sparse-tree nil "A=\"1\"")
- (search-forward "H2")
- (org-invisible-p2)))
-
- (should-not
- (org-test-with-temp-text "* H\n** H1\n*** H2"
- (let ((org-odd-levels-only nil)) (org-match-sparse-tree nil "LEVEL=2"))
- (search-forward "H1")
- (org-invisible-p2)))
- (should
- (org-test-with-temp-text "* H\n** H1\n*** H2"
- (let ((org-odd-levels-only nil)) (org-match-sparse-tree nil "LEVEL=2"))
- (search-forward "H2")
- (org-invisible-p2)))
-
- (should
- (org-test-with-temp-text
- "* H\n** H1\nSCHEDULED: <2014-03-04 tue.>\n** H2\nSCHEDULED: <2012-03-29 thu.>"
- (org-match-sparse-tree nil "SCHEDULED<=\"<2013-01-01>\"")
- (search-forward "H1")
- (org-invisible-p2)))
- (should-not
- (org-test-with-temp-text
- "* H\n** H1\nSCHEDULED: <2014-03-04 tue.>\n** H2\nSCHEDULED: <2012-03-29 thu.>"
- (org-match-sparse-tree nil "SCHEDULED<=\"<2013-01-01>\"")
- (search-forward "H2")
- (org-invisible-p2)))
-
- (should-not
- (org-test-with-temp-text
- "* H\n** H1\n:PROPERTIES:\n:A: foo\n:END:\n** H2\n:PROPERTIES:\n:A: bar\n:END:"
- (org-match-sparse-tree nil "A={f.*}")
- (search-forward "H1")
- (org-invisible-p2)))
- (should
- (org-test-with-temp-text
- "* H\n** H1\n:PROPERTIES:\n:A: foo\n:END:\n** H2\n:PROPERTIES:\n:A: bar\n:END:"
- (org-match-sparse-tree nil "A={f.*}")
- (search-forward "H2")
- (org-invisible-p2)))
-
- (should-not
- (org-test-with-temp-text "* H\n** TODO H1 :tag:\n** H2 :tag:"
- (org-match-sparse-tree t "tag")
- (search-forward "H1")
- (org-invisible-p2)))
- (should
- (org-test-with-temp-text "* H\n** TODO H1 :tag:\n** H2 :tag:"
- (org-match-sparse-tree t "tag")
- (search-forward "H2")
- (org-invisible-p2))))
- (ert-deftest test-org/time-stamp ()
- "Test `org-time-stamp' specifications."
-
- (should
- (string-match
- "Te<2014-03-04 .*?>xt"
- (org-test-with-temp-text "Te<point>xt"
- (flet ((org-read-date
- (&rest args)
- (apply #'encode-time (org-parse-time-string "2014-03-04"))))
- (org-time-stamp nil)
- (buffer-string)))))
-
- (should
- (string-match
- "Te<2014-03-04 .*? 00:41>xt"
- (org-test-with-temp-text "Te<point>xt"
- (flet ((org-read-date
- (&rest args)
- (apply #'encode-time (org-parse-time-string "2014-03-04 00:41"))))
- (org-time-stamp '(4))
- (buffer-string)))))
-
-
- (should
- (string-match
- "Te<2014-03-04 .*? 00:41>xt"
- (org-test-with-temp-text "Te<point>xt"
- (flet ((current-time
- ()
- (apply #'encode-time (org-parse-time-string "2014-03-04 00:41"))))
- (org-time-stamp '(16))
- (buffer-string)))))
-
- (should
- (string-match
- "Te\\[2014-03-04 .*?\\]xt"
- (org-test-with-temp-text "Te<point>xt"
- (flet ((org-read-date
- (&rest args)
- (apply #'encode-time (org-parse-time-string "2014-03-04"))))
- (org-time-stamp nil t)
- (buffer-string)))))
-
- (should
- (string-match
- "<2014-03-04 .*?>"
- (org-test-with-temp-text "<2012-03-29<point> thu.>"
- (flet ((org-read-date
- (&rest args)
- (apply #'encode-time (org-parse-time-string "2014-03-04"))))
- (org-time-stamp nil)
- (buffer-string)))))
- (should
- (string-match
- "<2014-03-04 .*?>--<2014-03-04 .*?>"
- (org-test-with-temp-text "<2012-03-29<point> thu.>--<2014-03-04 tue.>"
- (flet ((org-read-date
- (&rest args)
- (apply #'encode-time (org-parse-time-string "2014-03-04"))))
- (org-time-stamp nil)
- (buffer-string)))))
-
- (should
- (string-match
- "<2014-03-04 .*? \\+2y>"
- (org-test-with-temp-text "<2012-03-29<point> thu. +2y>"
- (flet ((org-read-date
- (&rest args)
- (apply #'encode-time (org-parse-time-string "2014-03-04"))))
- (org-time-stamp nil)
- (buffer-string)))))
-
- (should
- (string-match
- "<2012-03-29 .*?>--<2014-03-04 .*?>"
- (org-test-with-temp-text "<2012-03-29 thu.><point>"
- (flet ((org-read-date
- (&rest args)
- (apply #'encode-time (org-parse-time-string "2014-03-04"))))
- (let ((last-command 'org-time-stamp)
- (this-command 'org-time-stamp))
- (org-time-stamp nil))
- (buffer-string))))))
- (ert-deftest test-org/timestamp-has-time-p ()
- "Test `org-timestamp-has-time-p' specifications."
-
- (should
- (org-test-with-temp-text "<2012-03-29 Thu 16:40>"
- (org-timestamp-has-time-p (org-element-context))))
-
- (should-not
- (org-test-with-temp-text "<2012-03-29 Thu>"
- (org-timestamp-has-time-p (org-element-context)))))
- (ert-deftest test-org/timestamp-format ()
- "Test `org-timestamp-format' specifications."
-
- (should
- (equal
- "2012-03-29 16:40"
- (org-test-with-temp-text "<2012-03-29 Thu 16:40>"
- (org-timestamp-format (org-element-context) "%Y-%m-%d %R"))))
-
- (should
- (equal
- "2012-03-29"
- (org-test-with-temp-text "[2011-07-14 Thu]--[2012-03-29 Thu]"
- (org-timestamp-format (org-element-context) "%Y-%m-%d" t)))))
- (ert-deftest test-org/timestamp-split-range ()
- "Test `org-timestamp-split-range' specifications."
-
- (should
- (equal '(2012 3 29)
- (org-test-with-temp-text "<2012-03-29 Thu>--<2012-03-30 Fri>"
- (let ((ts (org-timestamp-split-range (org-element-context))))
- (mapcar (lambda (p) (org-element-property p ts))
- '(:year-end :month-end :day-end))))))
-
- (should
- (equal '(2012 3 29)
- (org-test-with-temp-text "[2012-03-29 Thu]--[2012-03-30 Fri]"
- (let ((ts (org-timestamp-split-range (org-element-context))))
- (mapcar (lambda (p) (org-element-property p ts))
- '(:year-end :month-end :day-end))))))
-
- (should
- (equal '(2012 3 30)
- (org-test-with-temp-text "<2012-03-29 Thu>--<2012-03-30 Fri>"
- (let ((ts (org-timestamp-split-range
- (org-element-context) t)))
- (mapcar (lambda (p) (org-element-property p ts))
- '(:year-end :month-end :day-end))))))
-
- (should
- (equal '(2012 3 30)
- (org-test-with-temp-text "[2012-03-29 Thu]--[2012-03-30 Fri]"
- (let ((ts (org-timestamp-split-range
- (org-element-context) t)))
- (mapcar (lambda (p) (org-element-property p ts))
- '(:year-end :month-end :day-end))))))
-
- (should
- (org-test-with-temp-text "[2012-03-29 Thu]"
- (let* ((ts-orig (org-element-context))
- (ts-copy (org-timestamp-split-range ts-orig)))
- (eq ts-orig ts-copy))))
- (should
- (org-test-with-temp-text "<%%(org-float t 4 2)>"
- (let* ((ts-orig (org-element-context))
- (ts-copy (org-timestamp-split-range ts-orig)))
- (eq ts-orig ts-copy)))))
- (ert-deftest test-org/timestamp-translate ()
- "Test `org-timestamp-translate' specifications."
-
- (should
- (equal "<29>--<30>"
- (org-test-with-temp-text "<2012-03-29 Thu>--<2012-03-30 Fri>"
- (let ((org-display-custom-times t)
- (org-time-stamp-custom-formats '("<%d>" . "<%d>")))
- (org-timestamp-translate (org-element-context))))))
-
- (should
- (equal "<29>"
- (org-test-with-temp-text "<2012-03-29 Thu>--<2012-03-30 Fri>"
- (let ((org-display-custom-times t)
- (org-time-stamp-custom-formats '("<%d>" . "<%d>")))
- (org-timestamp-translate (org-element-context) 'start)))))
-
- (should
- (equal "<30>"
- (org-test-with-temp-text "<2012-03-29 Thu>--<2012-03-30 Fri>"
- (let ((org-display-custom-times t)
- (org-time-stamp-custom-formats '("<%d>" . "<%d>")))
- (org-timestamp-translate (org-element-context) 'end)))))
-
- (should
- (equal "<08>--<16>"
- (org-test-with-temp-text "<2012-03-29 Thu 8:30-16:40>"
- (let ((org-display-custom-times t)
- (org-time-stamp-custom-formats '("<%d>" . "<%H>")))
- (org-timestamp-translate (org-element-context))))))
-
- (should
- (equal "<29>"
- (org-test-with-temp-text "<2012-03-29 Thu>"
- (let ((org-display-custom-times t)
- (org-time-stamp-custom-formats '("<%d>" . "<%d>")))
- (org-timestamp-translate (org-element-context))))))
-
- (should
- (equal "<%%(org-float t 4 2)>"
- (org-test-with-temp-text "<%%(org-float t 4 2)>"
- (let ((org-display-custom-times t)
- (org-time-stamp-custom-formats '("<%d>" . "<%d>")))
- (org-timestamp-translate (org-element-context)))))))
- (ert-deftest test-org/flag-drawer ()
- "Test `org-flag-drawer' specifications."
-
- (should
- (org-test-with-temp-text ":DRAWER:\ncontents\n:END:"
- (org-flag-drawer t)
- (get-char-property (line-end-position) 'invisible)))
-
- (should-not
- (org-test-with-temp-text ":DRAWER:\ncontents\n:END:"
- (org-flag-drawer t)
- (org-flag-drawer nil)
- (get-char-property (line-end-position) 'invisible)))
-
- (should
- (org-test-with-temp-text ":D1:\nc1\n:END:\n\n:D2:\nc2\n:END:"
- (let ((drawer (save-excursion (search-forward ":D2")
- (org-element-at-point))))
- (org-flag-drawer t drawer)
- (get-char-property (progn (search-forward ":D2") (line-end-position))
- 'invisible))))
- (should-not
- (org-test-with-temp-text ":D1:\nc1\n:END:\n\n:D2:\nc2\n:END:"
- (let ((drawer (save-excursion (search-forward ":D2")
- (org-element-at-point))))
- (org-flag-drawer t drawer)
- (get-char-property (line-end-position) 'invisible))))
-
- (should-not
- (org-test-with-temp-text "#+begin_example\n:D:\nc\n:END:\n#+end_example"
- (forward-line 1)
- (org-flag-drawer t)
- (get-char-property (line-end-position) 'invisible)))
-
- (should-not
- (org-test-with-temp-text ":D:\nparagraph"
- (forward-line 1)
- (org-flag-drawer t)
- (get-char-property (line-end-position) 'invisible)))
-
- (should-not
- (org-test-with-temp-text ":DRAWER:\nA\n:END:\n\n"
- (goto-char (point-max))
- (org-flag-drawer t)
- (goto-char (point-min))
- (get-char-property (line-end-position) 'invisible)))
-
-
- (should-not
- (org-test-with-temp-text ":DRAWER:\ncontents\n:END:"
- (goto-char (point-max))
- (org-flag-drawer t)
- (get-char-property (point) 'invisible))))
- (ert-deftest test-org/hide-block-toggle ()
- "Test `org-hide-block-toggle' specifications."
-
- (should-error
- (org-test-with-temp-text "#+BEGIN_QUOTE\ncontents"
- (org-hide-block-toggle 'off)
- (get-char-property (line-end-position) 'invisible)))
-
- (should
- (org-test-with-temp-text "#+BEGIN_CENTER\ncontents\n#+END_CENTER"
- (org-hide-block-toggle)
- (get-char-property (line-end-position) 'invisible)))
- (should
- (org-test-with-temp-text "#+BEGIN_EXAMPLE\ncontents\n#+END_EXAMPLE"
- (org-hide-block-toggle)
- (get-char-property (line-end-position) 'invisible)))
-
- (should-not
- (org-test-with-temp-text "#+BEGIN_QUOTE\ncontents\n#+END_QUOTE"
- (org-hide-block-toggle)
- (org-hide-block-toggle 'off)
- (get-char-property (line-end-position) 'invisible)))
- (should-not
- (org-test-with-temp-text "#+BEGIN_QUOTE\ncontents\n#+END_QUOTE"
- (org-hide-block-toggle 'off)
- (get-char-property (line-end-position) 'invisible)))
-
- (should
- (org-test-with-temp-text "#+BEGIN_QUOTE\ncontents\n#+END_QUOTE"
- (org-hide-block-toggle t)
- (get-char-property (line-end-position) 'invisible)))
- (should
- (org-test-with-temp-text "#+BEGIN_QUOTE\ncontents\n#+END_QUOTE"
- (org-hide-block-toggle)
- (org-hide-block-toggle t)
- (get-char-property (line-end-position) 'invisible)))
-
- (should-not
- (org-test-with-temp-text "#+BEGIN_QUOTE\ncontents\n#+END_QUOTE\n\n<point>"
- (org-hide-block-toggle)
- (goto-char (point-min))
- (get-char-property (line-end-position) 'invisible)))
-
-
- (should-not
- (org-test-with-temp-text "#+BEGIN_QUOTE\ncontents\n<point>#+END_QUOTE"
- (org-hide-block-toggle)
- (get-char-property (point) 'invisible))))
- (ert-deftest test-org/hide-block-toggle-maybe ()
- "Test `org-hide-block-toggle-maybe' specifications."
- (should
- (org-test-with-temp-text "#+BEGIN: dynamic\nContents\n#+END:"
- (org-hide-block-toggle-maybe)))
- (should-not
- (org-test-with-temp-text "Paragraph" (org-hide-block-toggle-maybe))))
- (ert-deftest test-org/show-set-visibility ()
- "Test `org-show-set-visibility' specifications."
-
- (should
- (org-test-with-temp-text "Preamble\n* Headline"
- (org-show-set-visibility 'tree)
- t))
-
- (let ((list-visible-lines
- (lambda (state headerp)
- (org-test-with-temp-text "* Grandmother (0)
- ** Uncle (1)
- *** Heir (2)
- ** Father (3)
- Ancestor text (4)
- *** Sister (5)
- Sibling text (6)
- *** Self (7)
- Match (8)
- **** First born (9)
- Child text (10)
- **** The other child (11)
- *** Brother (12)
- ** Aunt (13)
- "
- (org-cycle t)
- (search-forward (if headerp "Self" "Match"))
- (org-show-set-visibility state)
- (goto-char (point-min))
- (let (result (line 0))
- (while (not (eobp))
- (unless (org-invisible-p2) (push line result))
- (incf line)
- (forward-line))
- (nreverse result))))))
- (should (equal '(0 7) (funcall list-visible-lines 'minimal t)))
- (should (equal '(0 7 8) (funcall list-visible-lines 'minimal nil)))
- (should (equal '(0 7 8 9) (funcall list-visible-lines 'local t)))
- (should (equal '(0 7 8 9) (funcall list-visible-lines 'local nil)))
- (should (equal '(0 3 7) (funcall list-visible-lines 'ancestors t)))
- (should (equal '(0 3 7 8) (funcall list-visible-lines 'ancestors nil)))
- (should (equal '(0 3 5 7 12) (funcall list-visible-lines 'lineage t)))
- (should (equal '(0 3 5 7 8 9 12) (funcall list-visible-lines 'lineage nil)))
- (should (equal '(0 1 3 5 7 12 13) (funcall list-visible-lines 'tree t)))
- (should (equal '(0 1 3 5 7 8 9 11 12 13)
- (funcall list-visible-lines 'tree nil)))
- (should (equal '(0 1 3 4 5 7 12 13)
- (funcall list-visible-lines 'canonical t)))
- (should (equal '(0 1 3 4 5 7 8 9 11 12 13)
- (funcall list-visible-lines 'canonical nil)))))
- (provide 'test-org)
|