Classes

Coverage Distribution

Complexity

Insufficient Coverage

Class Coverage
MediaWiki\Extension\DiscussionTools\Actions\UnsubscribeAction0%
MediaWiki\Extension\DiscussionTools\SubscriptionStore0%
MediaWiki\Extension\DiscussionTools\Notifications\PlaintextEchoPresentationModelSection0%
MediaWiki\Extension\DiscussionTools\Notifications\RemovedTopicPresentationModel0%
MediaWiki\Extension\DiscussionTools\Notifications\SubscribedNewCommentPresentationModel0%
MediaWiki\Extension\DiscussionTools\ResourceLoaderData0%
MediaWiki\Extension\DiscussionTools\SpecialFindComment0%
MediaWiki\Extension\DiscussionTools\SpecialGoToComment0%
MediaWiki\Extension\DiscussionTools\SpecialTopicSubscriptions0%
MediaWiki\Extension\DiscussionTools\SubscriptionItem0%
MediaWiki\Extension\DiscussionTools\ThreadItem\ContentHeadingItem0%
MediaWiki\Extension\DiscussionTools\NodeFilter0%
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\Notifications\EnhancedEchoMentionPresentationModel0%
MediaWiki\Extension\DiscussionTools\Notifications\EnhancedEchoEditUserTalkPresentationModel0%
MediaWiki\Extension\DiscussionTools\ThreadItem\ThreadItemTrait0%
MediaWiki\Extension\DiscussionTools\Hooks\InstallerHooks0%
MediaWiki\Extension\DiscussionTools\ApiDiscussionToolsPreview0%
MediaWiki\Extension\DiscussionTools\ContentThreadItemSet0%
MediaWiki\Extension\DiscussionTools\ApiDiscussionToolsGetSubscriptions0%
MediaWiki\Extension\DiscussionTools\DatabaseThreadItemSet0%
MediaWiki\Extension\DiscussionTools\Hooks\DataUpdatesHooks0%
MediaWiki\Extension\DiscussionTools\Hooks\EchoHooks0%
MediaWiki\Extension\DiscussionTools\Hooks\HookUtils0%
MediaWiki\Extension\DiscussionTools\Hooks\MobileHooks0%
MediaWiki\Extension\DiscussionTools\ButtonMenuSelectWidget0%
MediaWiki\Extension\DiscussionTools\Hooks\PageHooks0%
MediaWiki\Extension\DiscussionTools\Hooks\ParserHooks0%
MediaWiki\Extension\DiscussionTools\Hooks\PreferenceHooks0%
MediaWiki\Extension\DiscussionTools\Hooks\RegistrationHooks0%
MediaWiki\Extension\DiscussionTools\Hooks\ResourceLoaderHooks0%
MediaWiki\Extension\DiscussionTools\ApiDiscussionToolsEdit0%
MediaWiki\Extension\DiscussionTools\Hooks\TagHooks0%
MediaWiki\Extension\DiscussionTools\ApiDiscussionToolsSubscribe0%
MediaWiki\Extension\DiscussionTools\ThreadItem\CommentItemTrait25%
MediaWiki\Extension\DiscussionTools\Notifications\EventDispatcher40%
MediaWiki\Extension\DiscussionTools\ImmutableRange53%
MediaWiki\Extension\DiscussionTools\ThreadItemStore54%
MediaWiki\Extension\DiscussionTools\ThreadItem\ContentCommentItem58%
MediaWiki\Extension\DiscussionTools\ApiDiscussionToolsCompare61%
MediaWiki\Extension\DiscussionTools\CommentModifier64%
MediaWiki\Extension\DiscussionTools\CommentFormatter76%
MediaWiki\Extension\DiscussionTools\ApiDiscussionToolsPageInfo79%
MediaWiki\Extension\DiscussionTools\LanguageData85%
MediaWiki\Extension\DiscussionTools\ThreadItem\ContentThreadItem88%

Project Risks

Class CRAP
MediaWiki\Extension\DiscussionTools\Hooks\HookUtils11342
MediaWiki\Extension\DiscussionTools\Hooks\PageHooks2756
MediaWiki\Extension\DiscussionTools\ApiDiscussionToolsEdit2652
MediaWiki\Extension\DiscussionTools\ImmutableRange2109
MediaWiki\Extension\DiscussionTools\Notifications\EventDispatcher1052
MediaWiki\Extension\DiscussionTools\Hooks\PreferenceHooks930
MediaWiki\Extension\DiscussionTools\SubscriptionStore812
MediaWiki\Extension\DiscussionTools\CommentModifier628
MediaWiki\Extension\DiscussionTools\TopicSubscriptionsPager420
MediaWiki\Extension\DiscussionTools\ResourceLoaderData380
MediaWiki\Extension\DiscussionTools\Actions\UnsubscribeAction342
MediaWiki\Extension\DiscussionTools\Notifications\RemovedTopicPresentationModel342
MediaWiki\Extension\DiscussionTools\ThreadItemStore325
MediaWiki\Extension\DiscussionTools\Notifications\SubscribedNewCommentPresentationModel306
MediaWiki\Extension\DiscussionTools\TreeWalker272
MediaWiki\Extension\DiscussionTools\SpecialFindComment210
MediaWiki\Extension\DiscussionTools\ApiDiscussionToolsTrait182
MediaWiki\Extension\DiscussionTools\ThreadItem\ContentHeadingItem156
MediaWiki\Extension\DiscussionTools\Notifications\DiscussionToolsEventTrait156
MediaWiki\Extension\DiscussionTools\CommentFormatter154
MediaWiki\Extension\DiscussionTools\DatabaseThreadItemSet132
MediaWiki\Extension\DiscussionTools\ContentThreadItemSet132
MediaWiki\Extension\DiscussionTools\ApiDiscussionToolsSubscribe132
MediaWiki\Extension\DiscussionTools\SpecialGoToComment132
MediaWiki\Extension\DiscussionTools\Hooks\ParserHooks72
MediaWiki\Extension\DiscussionTools\ThreadItem\ContentThreadItem71
MediaWiki\Extension\DiscussionTools\ThreadItem\CommentItemTrait70
MediaWiki\Extension\DiscussionTools\ThreadItem\ContentCommentItem65
MediaWiki\Extension\DiscussionTools\Notifications\EnhancedEchoEditUserTalkPresentationModel56
MediaWiki\Extension\DiscussionTools\ApiDiscussionToolsPreview56
MediaWiki\Extension\DiscussionTools\ApiDiscussionToolsPageInfo48
MediaWiki\Extension\DiscussionTools\ApiDiscussionToolsCompare47
MediaWiki\Extension\DiscussionTools\ThreadItemFormatter42
MediaWiki\Extension\DiscussionTools\ApiDiscussionToolsGetSubscriptions42
MediaWiki\Extension\DiscussionTools\Hooks\TagHooks42
MediaWiki\Extension\DiscussionTools\Hooks\EchoHooks42
MediaWiki\Extension\DiscussionTools\LanguageData40
MediaWiki\Extension\DiscussionTools\Notifications\PlaintextEchoPresentationModelSection30
MediaWiki\Extension\DiscussionTools\Hooks\RegistrationHooks30
MediaWiki\Extension\DiscussionTools\ThreadItem\DatabaseHeadingItem20
MediaWiki\Extension\DiscussionTools\Notifications\EnhancedEchoMentionPresentationModel20
MediaWiki\Extension\DiscussionTools\Hooks\DataUpdatesHooks20
MediaWiki\Extension\DiscussionTools\Hooks\ResourceLoaderHooks12
MediaWiki\Extension\DiscussionTools\NodeFilter6
MediaWiki\Extension\DiscussionTools\Hooks\MobileHooks6

Methods

Coverage Distribution

Complexity

Insufficient Coverage

Method Coverage
__construct0%
getNotificationTimestamp0%
onSubmit0%
execute0%
displayItems0%
getDescription0%
__construct0%
getRedirect0%
__construct0%
execute0%
getDescription0%
__construct0%
getUserIdentity0%
getItemName0%
getLinkTarget0%
getCreatedTimestamp0%
getState0%
getDisplayFormat0%
addAutoSubscriptionForUser0%
addSignatureRange0%
getSubscribableHeading0%
getHeading0%
getMentions0%
updateSubscriptionNotifiedTimestamp0%
updateSubscriptionTimestamp0%
removeSubscriptionForUser0%
isMuted0%
addSubscriptionForUser0%
getSubscriptionItemFromRow0%
getSubscriptionItemsForTopic0%
getSubscriptionItemsForUser0%
fetchSubscriptions0%
__construct0%
alterForm0%
getFormFields0%
setTimestamp0%
__construct0%
addAutoSubscription0%
locateSubscribedUsers0%
inEventSample0%
getParsedSectionTitle0%
getTitleWithSection0%
__construct0%
getIconType0%
canRender0%
getPrimaryLink0%
getHeaderMessageKey0%
getHeaderMessage0%
getCompactHeaderMessage0%
getBodyMessage0%
getSecondaryLinks0%
getIconType0%
__construct0%
getLocalData0%
makeTestModule0%
addOptionalDependencies0%
getTermsOfUseMessagesVersion0%
getTermsOfUseMessagesParsed0%
getTermsOfUseMessages0%
getContentLanguageMessages0%
getSecondaryLinks0%
canRender0%
getBodyMessage0%
getCompactHeaderMessage0%
getHeaderMessage0%
getHeaderMessageKey0%
jsonSerialize0%
getPrimaryLink0%
setSignatureRanges0%
setAuthor0%
getPageTitle0%
getDefaultDirections0%
findNewestRevisionsByName0%
findNewestRevisionsById0%
fetchItemsResultSet0%
fetchRevisionAndPageForItems0%
getThreadItemFromRow0%
findThreadItemsInCurrentRevision0%
getIdsNamesBuilder0%
__construct0%
preprocessResults0%
getFieldNames0%
formatValue0%
getCellAttrs0%
getQueryInfo0%
getDefaultSort0%
getIndexField0%
makeLink0%
addMarkAsRead0%
isSubscribable0%
jsonSerialize0%
getSubscribableHeading0%
getHeading0%
jsonSerializeForDiff0%
jsonSerialize0%
getContentSnippet0%
isFieldSortable0%
getCommentLink0%
getParsoidClient0%
previewMessage0%
filterNode0%
nextNode0%
__construct0%
formatLine0%
__construct0%
__construct0%
getAuthor0%
getLinkableTitle0%
getHeadingLevel0%
setHeadingLevel0%
isPlaceholderHeading0%
setPlaceholderHeading0%
getTranscludedFrom0%
getCommentCount0%
getLatestReply0%
getType0%
getRootNode0%
getWarnings0%
setLevel0%
setRange0%
__construct0%
getTimestamp0%
getLevel0%
getName0%
getTranscludedFrom0%
getReplies0%
getParent0%
getType0%
getId0%
addReply0%
getRevision0%
getHeading0%
getPage0%
__construct0%
isPlaceholderHeading0%
getHeadingLevel0%
__construct0%
getSubscribableHeading0%
addCommentChangeTag0%
jsonSerialize0%
findCommentById0%
getFormFields0%
hasLedeContent0%
hasCommentsInLedeContent0%
__construct0%
whitespaceParsoidHack0%
allOfType0%
unwrapFragment0%
addSiblingListItem0%
addReply0%
transferReply0%
prepareWikitextReply0%
prepareHtmlReply0%
addWikitextReply0%
addHtmlReply0%
getDescription0%
isEmptyTalkPage0%
__construct0%
closestElementWithSibling0%
requiresUnblock0%
addThreadItem0%
isEmpty0%
updateIdAndNameMaps0%
getThreadItems0%
getCommentItems0%
findCommentsByName0%
generateEventsForRevision0%
getThreads0%
getThreadsStructured0%
addThreadItem0%
appendToEmptyTalkPage0%
postprocessVisualEnhancementsSubtitle0%
updateIdAndNameMaps0%
isInternal0%
usesOOUI0%
checkCanExecute0%
isInternal0%
__construct0%
execute0%
getAllowedParams0%
needsToken0%
isInternal0%
isWriteMode0%
__construct0%
execute0%
getAllowedParams0%
isInternal0%
__construct0%
getSignatureRelativeTime0%
execute0%
getAllowedParams0%
isInternal0%
__construct0%
execute0%
getAllowedParams0%
needsToken0%
isInternal0%
isWriteMode0%
getJavaScriptClassName0%
getParser0%
addDiscussionTools0%
removeInteractiveTools0%
alterForm0%
onSubmit0%
isEmpty0%
getThreadItems0%
onRecentChange_save0%
getCommentItems0%
__construct0%
onParserAfterTidy0%
__construct0%
arrayRenameKey0%
onGetPreferences0%
onGetBetaFeaturePreferences0%
onLocalUserCreated0%
onRegistration0%
__construct0%
onResourceLoaderGetConfigVars0%
onChangeTagsListActive0%
onListDefinedTags0%
getDiscussionToolsTagsFromRequest0%
onBeforeDisplayNoArticleText0%
setStart0%
extractContents0%
getName0%
insertNode0%
surroundContents0%
show0%
acceptNode0%
getPrimaryLink0%
getBodyMessage0%
jsonSerialize0%
getPrimaryLink0%
jsonSerialize0%
getParsedRevision0%
getEmptyStateHtml0%
onTitleGetEditNotices0%
onGetActionName0%
isFeatureAvailableToUser0%
findCommentsByName0%
findCommentById0%
getThreads0%
getThreadsStructured0%
__construct0%
onRevisionDataUpdates0%
onBeforeCreateEchoEvent0%
onEchoGetBundleRules0%
onEchoGetEventsForRevision0%
hasPagePropCached0%
parseRevisionParsoidHtml0%
featureConflictsWithGadget0%
onOutputPageBeforeHTML0%
onSuccess0%
isFeatureEnabledForUser0%
shouldDisplayEmptyState0%
onMinervaNeueTalkPageOverlay0%
onLoadExtensionSchemaUpdates0%
shouldAddAutoSubscription0%
pageSubjectExists0%
isMobile0%
shouldOpenNewTopicTool0%
shouldShowNewSectionTab0%
isFeatureEnabledForOutput0%
onBeforePageDisplay0%
isAvailableForTitle0%
determineUserABTestBucket0%
__construct0%
logAddedComments10%
getTranscludedFrom40%
execute47%
setStartOrEnd54%
execute66%
getHeadlineNodeAndOffset70%
convertDateFormat70%
generateEventsFromItemSets77%
cloneContents82%
getTimestampRegexp84%
findAddedItems84%
getTranscludedFrom87%
compareRanges88%
compareBoundaryPoints88%
postprocessTopicSubscription89%

Project Risks

Method CRAP
execute2162
extractContents812
isFeatureEnabledForOutput702
onBeforePageDisplay552
onGetPreferences420
logAddedComments227
isFeatureAvailableToUser156
previewMessage156
getThreadItemFromRow132
shouldDisplayEmptyState110
insertNode110
getRedirect110
shouldOpenNewTopicTool90
onOutputPageBeforeHTML90
nextNode90
surroundContents90
unwrapFragment90
closestElementWithSibling72
transferReply72
determineUserABTestBucket72
makeTestModule72
formatValue72
isFeatureEnabledForUser56
addReply56
getEmptyStateHtml56
onParserAfterTidy56
prepareHtmlReply56
execute47
convertDateFormat42
execute42
isAvailableForTitle42
addDiscussionTools42
postprocessVisualEnhancementsSubtitle42
pageSubjectExists42
filterNode42
execute42
featureConflictsWithGadget42
cloneContents40
getSecondaryLinks30
onRegistration30
fetchSubscriptions30
getCommentLink30
getSubscriptionItemsForUser30
getMentions30
shouldAddAutoSubscription30
shouldShowNewSectionTab30
getTimestampRegexp29
compareRanges23
getTranscludedFrom21
addMarkAsRead20
getSubscriptionItemsForTopic20
findNewestRevisionsByName20
findNewestRevisionsById20
execute20
fetchRevisionAndPageForItems20
getPrimaryLink20
findThreadItemsInCurrentRevision20
inEventSample20
allOfType20
getSubscribableHeading20
generateEventsForRevision20
onGetActionName20
onTitleGetEditNotices20
generateEventsFromItemSets19
postprocessTopicSubscription14
setStartOrEnd14
jsonSerialize12
getLinkableTitle12
addThreadItem12
getContentSnippet12
formatLine12
getSecondaryLinks12
hasPagePropCached12
getTranscludedFrom12
addOptionalDependencies12
onRevisionDataUpdates12
execute12
checkCanExecute12
isSubscribable12
parseRevisionParsoidHtml12
addSubscriptionForUser12
removeSubscriptionForUser12
onLocalUserCreated12
onEchoGetBundleRules12
onRecentChange_save12
addAutoSubscription12
show12
getBodyMessage12
onGetBetaFeaturePreferences12
getParsedRevision12
getHeading12
addThreadItem12
arrayRenameKey12
updateSubscriptionTimestamp12
getTitleWithSection12
compareBoundaryPoints11
execute8
findAddedItems8
getTranscludedFrom7
__construct6
makeLink6
jsonSerializeForDiff6
jsonSerialize6
__construct6
preprocessResults6
getCellAttrs6
isFieldSortable6
getPageTitle6
addAutoSubscriptionForUser6
jsonSerialize6
getFormFields6
getSignatureRelativeTime6
prepareWikitextReply6
addWikitextReply6
addHtmlReply6
onEchoGetEventsForRevision6
onMinervaNeueTalkPageOverlay6
isMobile6
onBeforeDisplayNoArticleText6
onResourceLoaderGetConfigVars6
getPrimaryLink6
getPrimaryLink6
displayItems6
jsonSerialize6
getParsedSectionTitle6
getHeaderMessageKey6
getHeaderMessage6
getPrimaryLink6
jsonSerialize6
getHeaderMessageKey6
getHeaderMessage6
getBodyMessage6
getLocalData6
getTermsOfUseMessagesParsed6
getTermsOfUseMessagesVersion6
acceptNode6
getHeadlineNodeAndOffset4