Classes

Coverage Distribution

Complexity

Insufficient Coverage

Class Coverage
MediaWiki\Extension\DiscussionTools\Actions\SubscribeAction0%
MediaWiki\Extension\DiscussionTools\SpecialTopicSubscriptions0%
MediaWiki\Extension\DiscussionTools\Notifications\EnhancedEchoEditUserTalkPresentationModel0%
MediaWiki\Extension\DiscussionTools\Notifications\EnhancedEchoMentionPresentationModel0%
MediaWiki\Extension\DiscussionTools\Notifications\PlaintextEchoPresentationModelSection0%
MediaWiki\Extension\DiscussionTools\Notifications\RemovedTopicPresentationModel0%
MediaWiki\Extension\DiscussionTools\Notifications\SubscribedNewCommentPresentationModel0%
MediaWiki\Extension\DiscussionTools\OverflowMenuItem0%
MediaWiki\Extension\DiscussionTools\ResourceLoaderData0%
MediaWiki\Extension\DiscussionTools\SpecialDiscussionToolsDebug0%
MediaWiki\Extension\DiscussionTools\SpecialFindComment0%
MediaWiki\Extension\DiscussionTools\SpecialGoToComment0%
MediaWiki\Extension\DiscussionTools\SubscriptionItem0%
MediaWiki\Extension\DiscussionTools\NodeFilter0%
MediaWiki\Extension\DiscussionTools\SubscriptionStore0%
MediaWiki\Extension\DiscussionTools\ThreadItem\ContentHeadingItem0%
MediaWiki\Extension\DiscussionTools\ThreadItem\DatabaseCommentItem0%
MediaWiki\Extension\DiscussionTools\ThreadItem\DatabaseHeadingItem0%
MediaWiki\Extension\DiscussionTools\ThreadItem\DatabaseThreadItem0%
MediaWiki\Extension\DiscussionTools\ThreadItemFormatter0%
MediaWiki\Extension\DiscussionTools\TopicSubscriptionsPager0%
MediaWiki\Extension\DiscussionTools\TreeWalker0%
MediaWiki\Extension\DiscussionTools\ApiDiscussionToolsTrait0%
MediaWiki\Extension\DiscussionTools\Notifications\DiscussionToolsEventTrait0%
MediaWiki\Extension\DiscussionTools\ThreadItem\HeadingItemTrait0%
MediaWiki\Extension\DiscussionTools\Actions\UnsubscribeAction0%
MediaWiki\Extension\DiscussionTools\Notifications\AddedTopicPresentationModel0%
MediaWiki\Extension\DiscussionTools\ThreadItem\ThreadItemTrait0%
MediaWiki\Extension\DiscussionTools\Hooks\DiscussionToolsHooks0%
MediaWiki\Extension\DiscussionTools\ApiDiscussionToolsEdit0%
MediaWiki\Extension\DiscussionTools\ApiDiscussionToolsFindComment0%
MediaWiki\Extension\DiscussionTools\ApiDiscussionToolsGetSubscriptions0%
MediaWiki\Extension\DiscussionTools\ApiDiscussionToolsPreview0%
MediaWiki\Extension\DiscussionTools\ApiDiscussionToolsSubscribe0%
MediaWiki\Extension\DiscussionTools\ButtonMenuSelectWidget0%
MediaWiki\Extension\DiscussionTools\ContentThreadItemSet0%
MediaWiki\Extension\DiscussionTools\Hooks\BetaPreferenceHooks0%
MediaWiki\Extension\DiscussionTools\Hooks\DataUpdatesHooks0%
MediaWiki\Extension\DiscussionTools\DatabaseThreadItemSet0%
MediaWiki\Extension\DiscussionTools\Hooks\EchoHooks0%
MediaWiki\Extension\DiscussionTools\Hooks\HookUtils0%
MediaWiki\Extension\DiscussionTools\Hooks\TagHooks0%
MediaWiki\Extension\DiscussionTools\Hooks\ResourceLoaderHooks0%
MediaWiki\Extension\DiscussionTools\Hooks\RegistrationHooks0%
MediaWiki\Extension\DiscussionTools\Hooks\PreferenceHooks0%
MediaWiki\Extension\DiscussionTools\Hooks\ParserHooks0%
MediaWiki\Extension\DiscussionTools\Hooks\InstallerHooks0%
MediaWiki\Extension\DiscussionTools\Hooks\PageHooks0%
MediaWiki\Extension\DiscussionTools\ThreadItem\CommentItemTrait28%
MediaWiki\Extension\DiscussionTools\Notifications\EventDispatcher48%
MediaWiki\Extension\DiscussionTools\ImmutableRange51%
MediaWiki\Extension\DiscussionTools\ThreadItem\ContentCommentItem56%
MediaWiki\Extension\DiscussionTools\CommentModifier65%
MediaWiki\Extension\DiscussionTools\ApiDiscussionToolsCompare66%
MediaWiki\Extension\DiscussionTools\ApiDiscussionToolsPageInfo74%
MediaWiki\Extension\DiscussionTools\CommentFormatter82%
MediaWiki\Extension\DiscussionTools\LanguageData85%
MediaWiki\Extension\DiscussionTools\ThreadItem\ContentThreadItem88%

Project Risks

Class CRAP
MediaWiki\Extension\DiscussionTools\Hooks\HookUtils12882
MediaWiki\Extension\DiscussionTools\Hooks\PageHooks5700
MediaWiki\Extension\DiscussionTools\ApiDiscussionToolsEdit3422
MediaWiki\Extension\DiscussionTools\ImmutableRange2509
MediaWiki\Extension\DiscussionTools\TopicSubscriptionsPager1892
MediaWiki\Extension\DiscussionTools\SubscriptionStore1056
MediaWiki\Extension\DiscussionTools\Notifications\EventDispatcher777
MediaWiki\Extension\DiscussionTools\Hooks\PreferenceHooks702
MediaWiki\Extension\DiscussionTools\CommentModifier592
MediaWiki\Extension\DiscussionTools\ResourceLoaderData462
MediaWiki\Extension\DiscussionTools\Actions\UnsubscribeAction462
MediaWiki\Extension\DiscussionTools\Actions\SubscribeAction462
MediaWiki\Extension\DiscussionTools\ApiDiscussionToolsFindComment380
MediaWiki\Extension\DiscussionTools\Notifications\RemovedTopicPresentationModel342
MediaWiki\Extension\DiscussionTools\Notifications\SubscribedNewCommentPresentationModel342
MediaWiki\Extension\DiscussionTools\SpecialFindComment342
MediaWiki\Extension\DiscussionTools\TreeWalker272
MediaWiki\Extension\DiscussionTools\ApiDiscussionToolsTrait240
MediaWiki\Extension\DiscussionTools\ThreadItem\ContentHeadingItem210
MediaWiki\Extension\DiscussionTools\SpecialDiscussionToolsDebug210
MediaWiki\Extension\DiscussionTools\ThreadItem\DatabaseThreadItem182
MediaWiki\Extension\DiscussionTools\Notifications\DiscussionToolsEventTrait182
MediaWiki\Extension\DiscussionTools\CommentFormatter162
MediaWiki\Extension\DiscussionTools\Hooks\ParserHooks156
MediaWiki\Extension\DiscussionTools\DatabaseThreadItemSet132
MediaWiki\Extension\DiscussionTools\ContentThreadItemSet132
MediaWiki\Extension\DiscussionTools\ApiDiscussionToolsSubscribe110
MediaWiki\Extension\DiscussionTools\ThreadItem\ContentCommentItem90
MediaWiki\Extension\DiscussionTools\SpecialGoToComment90
MediaWiki\Extension\DiscussionTools\ApiDiscussionToolsPageInfo79
MediaWiki\Extension\DiscussionTools\Notifications\AddedTopicPresentationModel72
MediaWiki\Extension\DiscussionTools\ThreadItem\CommentItemTrait64
MediaWiki\Extension\DiscussionTools\Notifications\EnhancedEchoEditUserTalkPresentationModel56
MediaWiki\Extension\DiscussionTools\Hooks\EchoHooks56
MediaWiki\Extension\DiscussionTools\ApiDiscussionToolsPreview56
MediaWiki\Extension\DiscussionTools\LanguageData43
MediaWiki\Extension\DiscussionTools\ThreadItem\ContentThreadItem42
MediaWiki\Extension\DiscussionTools\Hooks\TagHooks42
MediaWiki\Extension\DiscussionTools\ThreadItemFormatter42
MediaWiki\Extension\DiscussionTools\ApiDiscussionToolsCompare40
MediaWiki\Extension\DiscussionTools\Hooks\RegistrationHooks30
MediaWiki\Extension\DiscussionTools\Hooks\DataUpdatesHooks30
MediaWiki\Extension\DiscussionTools\ApiDiscussionToolsGetSubscriptions30
MediaWiki\Extension\DiscussionTools\Notifications\PlaintextEchoPresentationModelSection30
MediaWiki\Extension\DiscussionTools\Hooks\DiscussionToolsHooks20
MediaWiki\Extension\DiscussionTools\Notifications\EnhancedEchoMentionPresentationModel20
MediaWiki\Extension\DiscussionTools\ThreadItem\DatabaseHeadingItem20
MediaWiki\Extension\DiscussionTools\Hooks\ResourceLoaderHooks12
MediaWiki\Extension\DiscussionTools\Hooks\BetaPreferenceHooks12
MediaWiki\Extension\DiscussionTools\NodeFilter6

Methods

Coverage Distribution

Complexity

Insufficient Coverage

Method Coverage
__construct0%
getFormFields0%
onSuccess0%
onSubmit0%
alterForm0%
getShowAlways0%
requiresPost0%
getDisplayFormat0%
getSubpageField0%
__construct0%
getDescription0%
formatComments0%
onSubmit0%
requiresPost0%
getDisplayFormat0%
getSubpageField0%
getFormFields0%
getDescription0%
displayItems0%
__construct0%
makeTestModule0%
getNotificationTimestamp0%
getSubscriptionItemFromRow0%
getSubscriptionItemsForTopic0%
getSubscriptionItemsForUser0%
fetchSubscriptions0%
__construct0%
isMuted0%
getState0%
getCreatedTimestamp0%
getRedirect0%
getLinkTarget0%
getItemName0%
getUserIdentity0%
__construct0%
getGroupName0%
getDescription0%
execute0%
__construct0%
__construct0%
addOptionalDependencies0%
removeSubscriptionForUser0%
getTitleWithSection0%
getCompactHeaderMessage0%
getHeaderMessage0%
getHeaderMessageKey0%
getPrimaryLink0%
canRender0%
getIconType0%
__construct0%
getParsedSectionTitle0%
getSecondaryLinks0%
inEventSample0%
locateSubscribedUsers0%
addAutoSubscription0%
addCommentChangeTag0%
generateEventsForRevision0%
getParsedRevision0%
getPageTitle0%
getBodyMessage0%
__construct0%
getTermsOfUseMessagesVersion0%
__construct0%
getTermsOfUseMessagesParsed0%
getTermsOfUseMessages0%
getContentLanguageMessages0%
getLocalData0%
getWeight0%
getId0%
jsonSerialize0%
getUnsubscribeConfirmationMessageKeys0%
getIconType0%
getSecondaryLinks0%
getBodyMessage0%
getCompactHeaderMessage0%
getHeaderMessage0%
getHeaderMessageKey0%
jsonSerialize0%
getPrimaryLink0%
canRender0%
addSubscriptionForUser0%
addAutoSubscriptionForUser0%
jsonSerialize0%
__construct0%
getCellAttrs0%
formatValueTopic0%
formatValuePage0%
maybeFormatAsList0%
formatValue0%
getFieldNames0%
preprocessResults0%
findThreadItemsInCurrentRevision0%
getDefaultSort0%
formatLine0%
makeLink0%
__construct0%
isCanonicalPermalink0%
getLevel0%
getTranscludedFrom0%
getReplies0%
getQueryInfo0%
getDefaultDirections0%
getType0%
getContentSnippet0%
isSubscribable0%
jsonSerialize0%
getSubscribableHeading0%
getHeading0%
jsonSerializeForDiff0%
jsonSerialize0%
addMarkAsRead0%
getCommentLink0%
getIndexField0%
transformHTML0%
getParsoidClient0%
getUserForPreview0%
previewMessage0%
filterNode0%
nextNode0%
__construct0%
isFieldSortable0%
getParent0%
getId0%
updateSubscriptionTimestamp0%
setAuthor0%
isPlaceholderHeading0%
setHeadingLevel0%
getHeadingLevel0%
setUneditableSection0%
isUneditableSection0%
getLinkableTitle0%
__construct0%
setTimestamp0%
jsonSerialize0%
setSignatureRanges0%
addSignatureRange0%
getSubscribableHeading0%
getHeading0%
getTimestampRanges0%
getMentions0%
jsonSerialize0%
updateSubscriptionNotifiedTimestamp0%
setPlaceholderHeading0%
getCommentCount0%
addReply0%
getSubscribableHeading0%
getName0%
getRevision0%
getPage0%
__construct0%
isPlaceholderHeading0%
getHeadingLevel0%
__construct0%
getHeading0%
getLatestReply0%
getTimestamp0%
getAuthor0%
__construct0%
setRange0%
setLevel0%
getWarnings0%
getRootNode0%
getType0%
getPrimaryLink0%
jsonSerialize0%
getBodyMessage0%
getParser0%
appendToEmptyTalkPage0%
isEmptyTalkPage0%
postprocessTableOfContents0%
postprocessVisualEnhancementsSubtitle0%
getSignatureRelativeTime0%
removeInteractiveTools0%
getJavaScriptClassName0%
hasCommentsInLedeContent0%
isWriteMode0%
needsToken0%
getAllowedParams0%
execute0%
__construct0%
isInternal0%
getAllowedParams0%
hasLedeContent0%
__construct0%
__construct0%
addHtmlReply0%
getThreadItems0%
updateIdAndNameMaps0%
isEmpty0%
getPrimaryLink0%
getNewTopicsSubscriptionId0%
closestElementWithSibling0%
__construct0%
addWikitextReply0%
whitespaceParsoidHack0%
prepareHtmlReply0%
prepareWikitextReply0%
transferReply0%
addReply0%
addSiblingListItem0%
unwrapFragment0%
allOfType0%
execute0%
isInternal0%
findCommentsByName0%
usesOOUI0%
getDescription0%
requiresUnblock0%
getName0%
show0%
getPageTitle0%
__construct0%
checkCanExecute0%
onSuccess0%
alterForm0%
onSubmit0%
alterForm0%
getFormFields0%
getDescription0%
requiresUnblock0%
getName0%
show0%
getFormFields0%
onSubmit0%
getAllowedParams0%
__construct0%
execute0%
__construct0%
isWriteMode0%
needsToken0%
getAllowedParams0%
getValue0%
execute0%
isWriteMode0%
onSuccess0%
needsToken0%
getAllowedParams0%
execute0%
__construct0%
isInternal0%
checkCanExecute0%
usesOOUI0%
getCommentItems0%
addThreadItem0%
findCommentById0%
onSkinTemplateNavigation__Universal0%
__construct0%
onGetDoubleUnderscoreIDs0%
onParserAfterTidy0%
onParserOutputPostCacheTransform0%
transformHtml0%
__construct0%
getNewTopicsSubscriptionButton0%
onSidebarBeforeOutput0%
onGetPreferences0%
getEmptyStateHtml0%
onBeforeDisplayNoArticleText0%
getThreads0%
onOutputPageParserOutput0%
onOutputPageBeforeHTML0%
onBeforePageDisplay0%
isMobile0%
arrayRenameKey0%
onLocalUserCreated0%
onLoadExtensionSchemaUpdates0%
insertNode0%
getUnsubscribeConfirmationMessageKeys0%
getCompactHeaderMessage0%
getHeaderMessage0%
getHeaderMessageKey0%
getPrimaryLink0%
acceptNode0%
surroundContents0%
extractContents0%
onRegistration0%
setStart0%
getDiscussionToolsTagsFromRequest0%
onRecentChange_save0%
onListDefinedTags0%
onChangeTagsListActive0%
onResourceLoaderGetConfigVars0%
__construct0%
__construct0%
onGetActionName0%
shouldAddAutoSubscription0%
getThreads0%
onBeforeCreateEchoEvent0%
onDiscussionToolsAddOverflowMenuItems0%
onRevisionDataUpdates0%
pageSubjectExists0%
onGetBetaFeaturePreferences0%
__construct0%
getThreadsStructured0%
findCommentById0%
onEchoGetEventsForRevision0%
findCommentsByName0%
getCommentItems0%
getThreadItems0%
updateIdAndNameMaps0%
isEmpty0%
addThreadItem0%
getThreadsStructured0%
onEchoGetBundleRules0%
__construct0%
jsonSerialize0%
hasPagePropCached0%
shouldDisplayEmptyState0%
parseRevisionParsoidHtml0%
featureConflictsWithGadget0%
isFeatureAvailableToUser0%
isFeatureEnabledForUser0%
shouldOpenNewTopicTool0%
shouldShowNewSectionTab0%
determineUserABTestBucket0%
isFeatureEnabledForOutput0%
isAvailableForTitle0%
logAddedComments7%
getThreadItemSet33%
findOrInsertId38%
getTranscludedFrom40%
execute41%
setStartOrEnd53%
addDiscussionTools61%
computeTranscludedFrom69%
convertDateFormat69%
cloneContents74%
getHeadlineNodeAndOffset76%
isLanguageRequiringReplyIcon78%
execute81%
getHTML83%
generateEventsFromItemSets84%
findAddedItems84%
compareRanges88%
getThreadItemFromRow88%
getTimestampRegexp88%
compareBoundaryPoints88%

Project Risks

Method CRAP
execute2970
extractContents812
isFeatureEnabledForOutput702
onBeforePageDisplay552
onGetPreferences380
logAddedComments246
isAvailableForTitle182
execute182
previewMessage156
isFeatureAvailableToUser132
formatValueTopic132
onOutputPageParserOutput132
makeTestModule110
shouldOpenNewTopicTool110
shouldDisplayEmptyState110
insertNode110
getEmptyStateHtml110
onOutputPageBeforeHTML90
formatValue90
surroundContents90
nextNode90
unwrapFragment90
transferReply72
closestElementWithSibling72
getRedirect72
execute66
isFeatureEnabledForUser56
getNewTopicsSubscriptionButton56
addReply56
prepareHtmlReply56
cloneContents54
convertDateFormat52
computeTranscludedFrom45
transformHtml42
parseRevisionParsoidHtml42
getCommentLink42
filterNode42
formatValuePage42
getSubscriptionItemsForUser42
pageSubjectExists42
execute42
determineUserABTestBucket42
featureConflictsWithGadget42
getThreadItemSet39
getTimestampRegexp32
addSubscriptionForUser30
getMentions30
onRegistration30
fetchSubscriptions30
onSuccess30
formatComments30
getSecondaryLinks30
shouldAddAutoSubscription30
postprocessVisualEnhancementsSubtitle30
shouldShowNewSectionTab30
postprocessTableOfContents30
compareRanges23
generateEventsFromItemSets21
getPrimaryLink20
removeSubscriptionForUser20
displayItems20
getLinkableTitle20
inEventSample20
findThreadItemsInCurrentRevision20
preprocessResults20
addMarkAsRead20
getSubscriptionItemsForTopic20
getSubscribableHeading20
generateEventsForRevision20
getPageTitle20
onEchoGetBundleRules20
execute20
onRevisionDataUpdates20
allOfType20
onGetActionName20
onDiscussionToolsAddOverflowMenuItems20
setStartOrEnd14
getTitleWithSection12
getSecondaryLinks12
addOptionalDependencies12
arrayRenameKey12
onSubmit12
addThreadItem12
getSignatureRelativeTime12
updateSubscriptionTimestamp12
jsonSerialize12
formatLine12
maybeFormatAsList12
checkCanExecute12
getFormFields12
show12
getPageTitle12
checkCanExecute12
getContentSnippet12
getHeading12
getFormFields12
isSubscribable12
execute12
addThreadItem12
onRecentChange_save12
addAutoSubscription12
onLocalUserCreated12
onSkinTemplateNavigation__Universal12
getBodyMessage12
onSidebarBeforeOutput12
getThreadItemFromRow11
compareBoundaryPoints11
findAddedItems8
findOrInsertId7
getTranscludedFrom7
getPrimaryLink6
makeLink6
isCanonicalPermalink6
__construct6
jsonSerialize6
acceptNode6
getValue6
getParsedSectionTitle6
isMobile6
onSuccess6
getCellAttrs6
show6
onBeforeDisplayNoArticleText6
getUserForPreview6
onResourceLoaderGetConfigVars6
onSuccess6
jsonSerializeForDiff6
jsonSerialize6
onParserOutputPostCacheTransform6
isFieldSortable6
__construct6
getHeaderMessageKey6
hasPagePropCached6
onEchoGetEventsForRevision6
getHeaderMessageKey6
getHeaderMessage6
onGetBetaFeaturePreferences6
getPrimaryLink6
jsonSerialize6
getHeaderMessageKey6
getHeaderMessage6
getBodyMessage6
getLocalData6
getTermsOfUseMessagesParsed6
getTermsOfUseMessagesVersion6
jsonSerialize6
jsonSerialize6
getPrimaryLink6
jsonSerialize6
addHtmlReply6
addWikitextReply6
prepareWikitextReply6
getPrimaryLink6
addAutoSubscriptionForUser6
getHeaderMessage6
onParserAfterTidy6
getHeadlineNodeAndOffset5
isLanguageRequiringReplyIcon5
addDiscussionTools3
execute3
getHTML2