Classes

Coverage Distribution

Complexity

Insufficient Coverage

Class Coverage
MediaWiki\Extension\DiscussionTools\Actions\UnsubscribeAction0%
MediaWiki\Extension\DiscussionTools\ResourceLoaderData0%
MediaWiki\Extension\DiscussionTools\Hooks\TagHooks0%
MediaWiki\Extension\DiscussionTools\NodeFilter0%
MediaWiki\Extension\DiscussionTools\Notifications\EnhancedEchoEditUserTalkPresentationModel0%
MediaWiki\Extension\DiscussionTools\Notifications\EnhancedEchoMentionPresentationModel0%
MediaWiki\Extension\DiscussionTools\Notifications\PlaintextEchoPresentationModelSection0%
MediaWiki\Extension\DiscussionTools\Notifications\SubscribedNewCommentPresentationModel0%
MediaWiki\Extension\DiscussionTools\SpecialTopicSubscriptions0%
MediaWiki\Extension\DiscussionTools\Hooks\RegistrationHooks0%
MediaWiki\Extension\DiscussionTools\SubscriptionItem0%
MediaWiki\Extension\DiscussionTools\SubscriptionStore0%
MediaWiki\Extension\DiscussionTools\ThreadItemSet0%
MediaWiki\Extension\DiscussionTools\TopicSubscriptionsPager0%
MediaWiki\Extension\DiscussionTools\TreeWalker0%
MediaWiki\Extension\DiscussionTools\Maintenance\ManageForeignResources0%
ApiDiscussionToolsTrait0%
MediaWiki\Extension\DiscussionTools\ApiDiscussionToolsCompare0%
MediaWiki\Extension\DiscussionTools\Hooks\ResourceLoaderHooks0%
MediaWiki\Extension\DiscussionTools\Hooks\PreferenceHooks0%
MediaWiki\Extension\DiscussionTools\HeadingItem0%
MediaWiki\Extension\DiscussionTools\ApiDiscussionToolsEdit0%
MediaWiki\Extension\DiscussionTools\ApiDiscussionToolsGetSubscriptions0%
MediaWiki\Extension\DiscussionTools\ApiDiscussionToolsPageInfo0%
MediaWiki\Extension\DiscussionTools\ApiDiscussionToolsPreview0%
MediaWiki\Extension\DiscussionTools\ApiDiscussionToolsSubscribe0%
MediaWiki\Extension\DiscussionTools\Hooks\ParserHooks0%
DiscussionToolsEventTrait0%
MediaWiki\Extension\DiscussionTools\Hooks\EchoHooks0%
MediaWiki\Extension\DiscussionTools\Hooks\HookUtils0%
MediaWiki\Extension\DiscussionTools\Hooks\InstallerHooks0%
MediaWiki\Extension\DiscussionTools\Hooks\MobileHooks0%
MediaWiki\Extension\DiscussionTools\Hooks\PageHooks0%
MediaWiki\Extension\DiscussionTools\CommentItem6%
MediaWiki\Extension\DiscussionTools\CommentUtils15%
MediaWiki\Extension\DiscussionTools\Notifications\EventDispatcher31%
MediaWiki\Extension\DiscussionTools\ImmutableRange31%
MediaWiki\Extension\DiscussionTools\ThreadItem43%
MediaWiki\Extension\DiscussionTools\CommentFormatter43%
MediaWiki\Extension\DiscussionTools\LanguageData51%
MediaWiki\Extension\DiscussionTools\CommentParser53%
MediaWiki\Extension\DiscussionTools\CommentModifier59%

Project Risks

Class CRAP
MediaWiki\Extension\DiscussionTools\CommentUtils14956
MediaWiki\Extension\DiscussionTools\Hooks\HookUtils5700
MediaWiki\Extension\DiscussionTools\CommentParser4020
MediaWiki\Extension\DiscussionTools\ImmutableRange3042
MediaWiki\Extension\DiscussionTools\ApiDiscussionToolsEdit2450
MediaWiki\Extension\DiscussionTools\Hooks\PageHooks1722
MediaWiki\Extension\DiscussionTools\Notifications\EventDispatcher1350
MediaWiki\Extension\DiscussionTools\SubscriptionStore1332
MediaWiki\Extension\DiscussionTools\CommentItem1050
MediaWiki\Extension\DiscussionTools\ThreadItem814
MediaWiki\Extension\DiscussionTools\Hooks\PreferenceHooks650
MediaWiki\Extension\DiscussionTools\CommentModifier611
MediaWiki\Extension\DiscussionTools\Actions\UnsubscribeAction342
MediaWiki\Extension\DiscussionTools\TreeWalker306
MediaWiki\Extension\DiscussionTools\Notifications\SubscribedNewCommentPresentationModel306
MediaWiki\Extension\DiscussionTools\ApiDiscussionToolsCompare306
DiscussionToolsEventTrait306
MediaWiki\Extension\DiscussionTools\HeadingItem272
MediaWiki\Extension\DiscussionTools\TopicSubscriptionsPager240
ApiDiscussionToolsTrait182
MediaWiki\Extension\DiscussionTools\ApiDiscussionToolsPageInfo182
MediaWiki\Extension\DiscussionTools\LanguageData165
MediaWiki\Extension\DiscussionTools\SubscriptionItem156
MediaWiki\Extension\DiscussionTools\ThreadItemSet156
MediaWiki\Extension\DiscussionTools\ResourceLoaderData156
MediaWiki\Extension\DiscussionTools\ApiDiscussionToolsSubscribe132
MediaWiki\Extension\DiscussionTools\CommentFormatter107
MediaWiki\Extension\DiscussionTools\Hooks\ParserHooks72
MediaWiki\Extension\DiscussionTools\Notifications\EnhancedEchoEditUserTalkPresentationModel56
MediaWiki\Extension\DiscussionTools\ApiDiscussionToolsPreview56
MediaWiki\Extension\DiscussionTools\ApiDiscussionToolsGetSubscriptions42
MediaWiki\Extension\DiscussionTools\Notifications\PlaintextEchoPresentationModelSection30
MediaWiki\Extension\DiscussionTools\Hooks\TagHooks30
MediaWiki\Extension\DiscussionTools\Hooks\EchoHooks30
MediaWiki\Extension\DiscussionTools\Hooks\RegistrationHooks30
MediaWiki\Extension\DiscussionTools\Notifications\EnhancedEchoMentionPresentationModel20
MediaWiki\Extension\DiscussionTools\Hooks\MobileHooks12
MediaWiki\Extension\DiscussionTools\Hooks\ResourceLoaderHooks12
MediaWiki\Extension\DiscussionTools\NodeFilter6

Methods

Coverage Distribution

Complexity

Insufficient Coverage

Method Coverage
__construct0%
canRender0%
getPrimaryLink0%
jsonSerialize0%
getParsedRevision0%
generateEventsForRevision0%
groupCommentsByThreadAndName0%
addCommentChangeTag0%
addAutoSubscription0%
locateSubscribedUsers0%
logAddedComments0%
inEventSample0%
getParsedSectionTitle0%
getTitleWithSection0%
__construct0%
getIconType0%
getPrimaryLink0%
getBodyMessage0%
getTermsOfUseMessages0%
getDescription0%
execute0%
__construct0%
addOptionalDependencies0%
getTermsOfUseMessagesVersion0%
getTermsOfUseMessagesParsed0%
getContentLanguageMessages0%
jsonSerialize0%
getLocalData0%
getSecondaryLinks0%
getBodyMessage0%
getCompactHeaderMessage0%
getHeaderMessage0%
getHeaderMessageKey0%
jsonSerialize0%
getPrimaryLink0%
getUserIdentity0%
onResourceLoaderGetConfigVars0%
onOutputPageBeforeHTML0%
onGetActionName0%
onBeforeDisplayNoArticleText0%
onArticleViewHeader0%
onTitleGetEditNotices0%
__construct0%
onParserAfterTidy0%
__construct0%
arrayRenameKey0%
onGetPreferences0%
onGetBetaFeaturePreferences0%
onLocalUserCreated0%
onRegistration0%
__construct0%
onChangeTagsListActive0%
acceptNode0%
isPartiallyContainedNode0%
convertDateFormat0%
__construct0%
compareBoundaryPoints0%
computePosition0%
insertNode0%
isFullyContainedNode0%
setEnd0%
onListDefinedTags0%
setStart0%
__get0%
__construct0%
getRootNode0%
findCommonAncestorContainer0%
onRecentChange_save0%
__construct0%
getItemName0%
getPageTitle0%
getFieldNames0%
setLegacyId0%
addWarning0%
addWarnings0%
addReply0%
addThreadItem0%
isEmpty0%
updateIdAndNameMaps0%
getThreadItems0%
getCommentItems0%
findCommentsByName0%
findCommentById0%
getThreads0%
__construct0%
preprocessResults0%
formatValue0%
setName0%
__construct0%
getContentSnippet0%
getCommentLink0%
transformHTML0%
previewMessage0%
parseRevision0%
execute0%
filterNode0%
getCellAttrs0%
nextNode0%
__construct0%
isFieldSortable0%
getIndexField0%
getDefaultSort0%
getQueryInfo0%
setId0%
setRootNode0%
getLinkTarget0%
updateSubscriptionNotifiedTimestamp0%
getCreatedTimestamp0%
getNotificationTimestamp0%
getState0%
isMuted0%
__construct0%
getConnectionRef0%
fetchSubscriptions0%
getSubscriptionItemsForUser0%
getSubscriptionItemsForTopic0%
getSubscriptionItemFromRow0%
addSubscriptionForUser0%
removeSubscriptionForUser0%
addAutoSubscriptionForUser0%
updateSubscriptionTimestamp0%
__construct0%
setRange0%
getName0%
setParent0%
setLevel0%
getWarnings0%
getReplies0%
getLegacyId0%
getId0%
getRootNode0%
jsonSerialize0%
getRange0%
getParent0%
getLevel0%
getType0%
getTransclusionRange0%
getSinglePageTransclusionTitle0%
onBeforePageDisplay0%
__construct0%
onMinervaNeueTalkPageOverlay0%
jsonSerializeForDiff0%
getAllowedParams0%
isInternal0%
__construct0%
execute0%
getAllowedParams0%
needsToken0%
isInternal0%
isWriteMode0%
getParser0%
addDiscussionTools0%
postprocessTopicSubscription0%
postprocessReplyTool0%
__construct0%
jsonSerialize0%
getBodyFragment0%
__construct0%
addSignatureRange0%
allOfType0%
whitespaceParsoidHack0%
__construct0%
setAuthor0%
setTimestamp0%
setSignatureRanges0%
getSubscribableHeading0%
getMentions0%
getHeading0%
getAuthor0%
getTimestampString0%
getTimestamp0%
getBodyRange0%
getSignatureRanges0%
execute0%
isWriteMode0%
addSiblingListItem0%
needsToken0%
show0%
getName0%
requiresUnblock0%
getDescription0%
getFormFields0%
alterForm0%
onSubmit0%
onSuccess0%
usesOOUI0%
checkCanExecute0%
__construct0%
execute0%
addResult0%
getAllowedParams0%
isInternal0%
isInternal0%
execute0%
needsToken0%
getAllowedParams0%
execute0%
__construct0%
isInternal0%
getAllowedParams0%
__construct0%
isWriteMode0%
isWriteMode0%
isInternal0%
needsToken0%
getAllowedParams0%
execute0%
__construct0%
unwrapFragment0%
createWikitextNode0%
onLoadExtensionSchemaUpdates0%
setHeadingLevel0%
htmlTrim0%
getIndentLevel0%
getCoveredSiblings0%
getFullyCoveredSiblings0%
getTitleFromUrl0%
linearWalkBackwards0%
getRangeFirstNode0%
getRangeLastNode0%
compareRanges0%
compareRangesAlmostEqualBoundaries0%
__construct0%
jsonSerialize0%
getLinkableTitle0%
getHeadingLevel0%
isPlaceholderHeading0%
getTranscludedFromElement0%
isFeatureEnabledForUser0%
shouldAddAutoSubscription0%
shouldDisplayEmptyState0%
shouldOpenNewTopicTool0%
isFeatureEnabledForOutput0%
isAvailableForTitle0%
determineUserABTestBucket0%
isFeatureAvailableToUser0%
setPlaceholderHeading0%
hasPagePropCached0%
onEchoGetEventsForRevision0%
onEchoGetBundleRules0%
onBeforeCreateEchoEvent0%
getTranscludedFrom0%
isSubscribable0%
getHeadlineNodeAndOffset0%
closestElement0%
addReply0%
contains0%
transferReply0%
prepareWikitextReply0%
prepareHtmlReply0%
addWikitextReply0%
addHtmlReply0%
__construct0%
nextInterestingLeafNode0%
regexpAlternateGroup0%
getMessages0%
getLocalTimestampRegexps0%
getLocalTimestampParsers0%
getUsernameFromLink0%
findSignature0%
acceptOnlyNodesAllowingComments0%
findTimestamp0%
adjustSigRange0%
isBlockElement0%
childIndexOf0%
isCommentContent0%
isCommentSeparator0%
cantHaveElementChildren0%
isOurGeneratedNode0%
isRenderingTransparentNode0%
__construct0%
getThreadStartComment0%
computeName0%
computeLegacyId0%
computeId0%
truncateForId0%
addMarkAsRead0%
cloneContents78%
getTimestampRegexp80%
getTimestampParser87%
getTranscludedFrom88%

Project Risks

Method CRAP
execute1980
convertDateFormat650
compareRanges552
isFeatureEnabledForOutput420
computePosition380
logAddedComments342
onGetPreferences240
findSignature240
compareRangesAlmostEqualBoundaries240
onBeforePageDisplay210
getUsernameFromLink182
isFeatureAvailableToUser156
computeId156
isRenderingTransparentNode132
execute132
getTranscludedFromElement132
acceptOnlyNodesAllowingComments110
findTimestamp110
nextNode110
insertNode110
unwrapFragment90
compareBoundaryPoints90
previewMessage90
shouldDisplayEmptyState90
groupCommentsByThreadAndName90
getHeadlineNodeAndOffset90
__get90
isCommentSeparator72
shouldOpenNewTopicTool72
determineUserABTestBucket72
onBeforeDisplayNoArticleText72
nextInterestingLeafNode72
execute72
onArticleViewHeader56
onParserAfterTidy56
prepareHtmlReply56
fetchSubscriptions56
getThreadStartComment56
getSubscriptionItemsForUser56
getFullyCoveredSiblings56
postprocessTopicSubscription56
getTimestampParser49
cloneContents45
getTitleFromUrl42
getIndentLevel42
getSinglePageTransclusionTitle42
findCommonAncestorContainer42
getBodyFragment42
execute42
cantHaveElementChildren42
isFeatureEnabledForUser42
filterNode42
getCommentLink42
getTimestampRegexp30
shouldAddAutoSubscription30
getCoveredSiblings30
getTransclusionRange30
onRegistration30
linearWalkBackwards30
closestElement30
getMentions30
getSubscribableHeading30
getSubscriptionItemsForTopic30
formatValue20
onTitleGetEditNotices20
onGetActionName20
jsonSerialize20
updateSubscriptionTimestamp20
inEventSample20
generateEventsForRevision20
addMarkAsRead20
isAvailableForTitle20
isOurGeneratedNode20
execute20
computeName20
allOfType20
transferReply20
getTranscludedFrom15
getHeading12
getLocalData12
getSecondaryLinks12
removeSubscriptionForUser12
hasPagePropCached12
__construct12
addAutoSubscription12
adjustSigRange12
getParsedRevision12
addThreadItem12
addSubscriptionForUser12
addOptionalDependencies12
addDiscussionTools12
getTitleWithSection12
getBodyMessage12
isCommentContent12
onLocalUserCreated12
onMinervaNeueTalkPageOverlay12
getContentSnippet12
onOutputPageBeforeHTML12
show12
getTranscludedFrom12
isSubscribable12
getLinkableTitle12
arrayRenameKey12
checkCanExecute12
onGetBetaFeaturePreferences12
getRangeLastNode12
execute12
isFullyContainedNode12
contains12
getRangeFirstNode12
onRecentChange_save12
addReply12
getParent6
jsonSerialize6
jsonSerializeForDiff6
isFieldSortable6
setLegacyId6
findCommentById6
getLegacyId6
updateSubscriptionNotifiedTimestamp6
preprocessResults6
getFormFields6
setName6
addAutoSubscriptionForUser6
setId6
getCellAttrs6
updateIdAndNameMaps6
jsonSerialize6
prepareWikitextReply6
getPrimaryLink6
onEchoGetEventsForRevision6
onEchoGetBundleRules6
jsonSerialize6
onResourceLoaderGetConfigVars6
getRootNode6
childIndexOf6
isBlockElement6
acceptNode6
getPrimaryLink6
jsonSerialize6
jsonSerialize6
getNotificationTimestamp6
computeLegacyId6
addHtmlReply6
addWikitextReply6
getParsedSectionTitle6
getPrimaryLink6
getHeaderMessageKey6
getHeaderMessage6
getBodyMessage6
getTermsOfUseMessagesParsed6
getTermsOfUseMessagesVersion6
getCreatedTimestamp6
getPageTitle6