LCOV - code coverage report
Current view: top level - toolkit/components/autocomplete - nsAutoCompleteSimpleResult.cpp (source / functions) Hit Total Coverage
Test: output.info Lines: 0 129 0.0 %
Date: 2017-07-14 16:53:18 Functions: 0 28 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /* This Source Code Form is subject to the terms of the Mozilla Public
       2             :  * License, v. 2.0. If a copy of the MPL was not distributed with this
       3             :  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
       4             : 
       5             : #include "nsAutoCompleteSimpleResult.h"
       6             : 
       7             : #define CHECK_MATCH_INDEX(_index, _insert)                                     \
       8             :   if (_index < 0 ||                                                            \
       9             :       static_cast<MatchesArray::size_type>(_index) > mMatches.Length() ||      \
      10             :       (!_insert && static_cast<MatchesArray::size_type>(_index) == mMatches.Length())) { \
      11             :     MOZ_ASSERT(false, "Trying to use an invalid index on mMatches");           \
      12             :     return NS_ERROR_ILLEGAL_VALUE;                                             \
      13             :   }                                                                            \
      14             : 
      15           0 : NS_IMPL_ISUPPORTS(nsAutoCompleteSimpleResult,
      16             :                   nsIAutoCompleteResult,
      17             :                   nsIAutoCompleteSimpleResult)
      18             : 
      19           0 : struct AutoCompleteSimpleResultMatch
      20             : {
      21           0 :   AutoCompleteSimpleResultMatch(const nsAString& aValue,
      22             :                                 const nsAString& aComment,
      23             :                                 const nsAString& aImage,
      24             :                                 const nsAString& aStyle,
      25             :                                 const nsAString& aFinalCompleteValue,
      26             :                                 const nsAString& aLabel)
      27           0 :     : mValue(aValue)
      28             :     , mComment(aComment)
      29             :     , mImage(aImage)
      30             :     , mStyle(aStyle)
      31             :     , mFinalCompleteValue(aFinalCompleteValue)
      32           0 :     , mLabel(aLabel)
      33             :   {
      34           0 :   }
      35             : 
      36             :   nsString mValue;
      37             :   nsString mComment;
      38             :   nsString mImage;
      39             :   nsString mStyle;
      40             :   nsString mFinalCompleteValue;
      41             :   nsString mLabel;
      42             : };
      43             : 
      44           0 : nsAutoCompleteSimpleResult::nsAutoCompleteSimpleResult() :
      45             :   mDefaultIndex(-1),
      46           0 :   mSearchResult(RESULT_NOMATCH)
      47             : {
      48           0 : }
      49             : 
      50             : nsresult
      51           0 : nsAutoCompleteSimpleResult::AppendResult(nsIAutoCompleteResult* aResult)
      52             : {
      53           0 :   nsAutoString searchString;
      54           0 :   nsresult rv = aResult->GetSearchString(searchString);
      55           0 :   NS_ENSURE_SUCCESS(rv, rv);
      56           0 :   mSearchString = searchString;
      57             : 
      58             :   uint16_t searchResult;
      59           0 :   rv = aResult->GetSearchResult(&searchResult);
      60           0 :   NS_ENSURE_SUCCESS(rv, rv);
      61           0 :   mSearchResult = searchResult;
      62             : 
      63           0 :   nsAutoString errorDescription;
      64           0 :   if (NS_SUCCEEDED(aResult->GetErrorDescription(errorDescription)) &&
      65           0 :       !errorDescription.IsEmpty()) {
      66           0 :     mErrorDescription = errorDescription;
      67             :   }
      68             : 
      69           0 :   int32_t defaultIndex = -1;
      70           0 :   if (NS_SUCCEEDED(aResult->GetDefaultIndex(&defaultIndex)) &&
      71           0 :       defaultIndex >= 0) {
      72           0 :     mDefaultIndex = defaultIndex;
      73             :   }
      74             : 
      75             :   nsCOMPtr<nsIAutoCompleteSimpleResult> simpleResult =
      76           0 :     do_QueryInterface(aResult);
      77           0 :   if (simpleResult) {
      78           0 :     nsCOMPtr<nsIAutoCompleteSimpleResultListener> listener;
      79           0 :     if (NS_SUCCEEDED(simpleResult->GetListener(getter_AddRefs(listener))) &&
      80           0 :         listener) {
      81           0 :       listener.swap(mListener);
      82             :     }
      83             :   }
      84             : 
      85             :   // Copy matches.
      86           0 :   uint32_t matchCount = 0;
      87           0 :   rv = aResult->GetMatchCount(&matchCount);
      88           0 :   NS_ENSURE_SUCCESS(rv, rv);
      89           0 :   for (size_t i = 0; i < matchCount; ++i) {
      90           0 :     nsAutoString value, comment, image, style, finalCompleteValue, label;
      91             : 
      92           0 :     rv = aResult->GetValueAt(i, value);
      93           0 :     NS_ENSURE_SUCCESS(rv, rv);
      94           0 :     rv = aResult->GetCommentAt(i, comment);
      95           0 :     NS_ENSURE_SUCCESS(rv, rv);
      96           0 :     rv = aResult->GetImageAt(i, image);
      97           0 :     NS_ENSURE_SUCCESS(rv, rv);
      98           0 :     rv = aResult->GetStyleAt(i, style);
      99           0 :     NS_ENSURE_SUCCESS(rv, rv);
     100           0 :     rv = aResult->GetFinalCompleteValueAt(i, finalCompleteValue);
     101           0 :     NS_ENSURE_SUCCESS(rv, rv);
     102           0 :     rv = aResult->GetLabelAt(i, label);
     103           0 :     NS_ENSURE_SUCCESS(rv, rv);
     104             : 
     105           0 :     rv = AppendMatch(value, comment, image, style, finalCompleteValue, label);
     106           0 :     NS_ENSURE_SUCCESS(rv, rv);
     107             :   }
     108             : 
     109           0 :   return NS_OK;
     110             : }
     111             : 
     112             : // searchString
     113             : NS_IMETHODIMP
     114           0 : nsAutoCompleteSimpleResult::GetSearchString(nsAString &aSearchString)
     115             : {
     116           0 :   aSearchString = mSearchString;
     117           0 :   return NS_OK;
     118             : }
     119             : NS_IMETHODIMP
     120           0 : nsAutoCompleteSimpleResult::SetSearchString(const nsAString &aSearchString)
     121             : {
     122           0 :   mSearchString.Assign(aSearchString);
     123           0 :   return NS_OK;
     124             : }
     125             : 
     126             : // searchResult
     127             : NS_IMETHODIMP
     128           0 : nsAutoCompleteSimpleResult::GetSearchResult(uint16_t *aSearchResult)
     129             : {
     130           0 :   *aSearchResult = mSearchResult;
     131           0 :   return NS_OK;
     132             : }
     133             : NS_IMETHODIMP
     134           0 : nsAutoCompleteSimpleResult::SetSearchResult(uint16_t aSearchResult)
     135             : {
     136           0 :   mSearchResult = aSearchResult;
     137           0 :   return NS_OK;
     138             : }
     139             : 
     140             : // defaultIndex
     141             : NS_IMETHODIMP
     142           0 : nsAutoCompleteSimpleResult::GetDefaultIndex(int32_t *aDefaultIndex)
     143             : {
     144           0 :   *aDefaultIndex = mDefaultIndex;
     145           0 :   return NS_OK;
     146             : }
     147             : NS_IMETHODIMP
     148           0 : nsAutoCompleteSimpleResult::SetDefaultIndex(int32_t aDefaultIndex)
     149             : {
     150           0 :   mDefaultIndex = aDefaultIndex;
     151           0 :   return NS_OK;
     152             : }
     153             : 
     154             : // errorDescription
     155             : NS_IMETHODIMP
     156           0 : nsAutoCompleteSimpleResult::GetErrorDescription(nsAString & aErrorDescription)
     157             : {
     158           0 :   aErrorDescription = mErrorDescription;
     159           0 :   return NS_OK;
     160             : }
     161             : NS_IMETHODIMP
     162           0 : nsAutoCompleteSimpleResult::SetErrorDescription(
     163             :                                              const nsAString &aErrorDescription)
     164             : {
     165           0 :   mErrorDescription.Assign(aErrorDescription);
     166           0 :   return NS_OK;
     167             : }
     168             : 
     169             : NS_IMETHODIMP
     170           0 : nsAutoCompleteSimpleResult::InsertMatchAt(int32_t aIndex,
     171             :                                           const nsAString& aValue,
     172             :                                           const nsAString& aComment,
     173             :                                           const nsAString& aImage,
     174             :                                           const nsAString& aStyle,
     175             :                                           const nsAString& aFinalCompleteValue,
     176             :                                           const nsAString& aLabel)
     177             : {
     178           0 :   CHECK_MATCH_INDEX(aIndex, true);
     179             : 
     180           0 :   AutoCompleteSimpleResultMatch match(aValue, aComment, aImage, aStyle, aFinalCompleteValue, aLabel);
     181             : 
     182           0 :   if (!mMatches.InsertElementAt(aIndex, match)) {
     183           0 :     return NS_ERROR_OUT_OF_MEMORY;
     184             :   }
     185             : 
     186           0 :   return NS_OK;
     187             : }
     188             : 
     189             : NS_IMETHODIMP
     190           0 : nsAutoCompleteSimpleResult::AppendMatch(const nsAString& aValue,
     191             :                                         const nsAString& aComment,
     192             :                                         const nsAString& aImage,
     193             :                                         const nsAString& aStyle,
     194             :                                         const nsAString& aFinalCompleteValue,
     195             :                                         const nsAString& aLabel)
     196             : {
     197           0 :   return InsertMatchAt(mMatches.Length(), aValue, aComment, aImage, aStyle,
     198           0 :                        aFinalCompleteValue, aLabel);
     199             : }
     200             : 
     201             : NS_IMETHODIMP
     202           0 : nsAutoCompleteSimpleResult::GetMatchCount(uint32_t *aMatchCount)
     203             : {
     204           0 :   *aMatchCount = mMatches.Length();
     205           0 :   return NS_OK;
     206             : }
     207             : 
     208             : NS_IMETHODIMP
     209           0 : nsAutoCompleteSimpleResult::GetValueAt(int32_t aIndex, nsAString& _retval)
     210             : {
     211           0 :   CHECK_MATCH_INDEX(aIndex, false);
     212           0 :   _retval = mMatches[aIndex].mValue;
     213           0 :   return NS_OK;
     214             : }
     215             : 
     216             : NS_IMETHODIMP
     217           0 : nsAutoCompleteSimpleResult::GetLabelAt(int32_t aIndex, nsAString& _retval)
     218             : {
     219           0 :   CHECK_MATCH_INDEX(aIndex, false);
     220           0 :   _retval = mMatches[aIndex].mLabel;
     221           0 :   if (_retval.IsEmpty()) {
     222           0 :     _retval = mMatches[aIndex].mValue;
     223             :   }
     224           0 :   return NS_OK;
     225             : }
     226             : 
     227             : NS_IMETHODIMP
     228           0 : nsAutoCompleteSimpleResult::GetCommentAt(int32_t aIndex, nsAString& _retval)
     229             : {
     230           0 :   CHECK_MATCH_INDEX(aIndex, false);
     231           0 :   _retval = mMatches[aIndex].mComment;
     232           0 :   return NS_OK;
     233             : }
     234             : 
     235             : NS_IMETHODIMP
     236           0 : nsAutoCompleteSimpleResult::GetImageAt(int32_t aIndex, nsAString& _retval)
     237             : {
     238           0 :   CHECK_MATCH_INDEX(aIndex, false);
     239           0 :   _retval = mMatches[aIndex].mImage;
     240           0 :   return NS_OK;
     241             : }
     242             : 
     243             : NS_IMETHODIMP
     244           0 : nsAutoCompleteSimpleResult::GetStyleAt(int32_t aIndex, nsAString& _retval)
     245             : {
     246           0 :   CHECK_MATCH_INDEX(aIndex, false);
     247           0 :   _retval = mMatches[aIndex].mStyle;
     248           0 :   return NS_OK;
     249             : }
     250             : 
     251             : NS_IMETHODIMP
     252           0 : nsAutoCompleteSimpleResult::GetFinalCompleteValueAt(int32_t aIndex,
     253             :                                                     nsAString& _retval)
     254             : {
     255           0 :   CHECK_MATCH_INDEX(aIndex, false);
     256           0 :   _retval = mMatches[aIndex].mFinalCompleteValue;
     257           0 :   if (_retval.IsEmpty()) {
     258           0 :     _retval = mMatches[aIndex].mValue;
     259             :   }
     260           0 :   return NS_OK;
     261             : }
     262             : 
     263             : NS_IMETHODIMP
     264           0 : nsAutoCompleteSimpleResult::SetListener(nsIAutoCompleteSimpleResultListener* aListener)
     265             : {
     266           0 :   mListener = aListener;
     267           0 :   return NS_OK;
     268             : }
     269             : 
     270             : NS_IMETHODIMP
     271           0 : nsAutoCompleteSimpleResult::GetListener(nsIAutoCompleteSimpleResultListener** aListener)
     272             : {
     273           0 :   nsCOMPtr<nsIAutoCompleteSimpleResultListener> listener(mListener);
     274           0 :   listener.forget(aListener);
     275           0 :   return NS_OK;
     276             : }
     277             : 
     278             : NS_IMETHODIMP
     279           0 : nsAutoCompleteSimpleResult::RemoveValueAt(int32_t aRowIndex,
     280             :                                           bool aRemoveFromDb)
     281             : {
     282           0 :   CHECK_MATCH_INDEX(aRowIndex, false);
     283             : 
     284           0 :   nsString value = mMatches[aRowIndex].mValue;
     285           0 :   mMatches.RemoveElementAt(aRowIndex);
     286             : 
     287           0 :   if (mListener) {
     288           0 :     mListener->OnValueRemoved(this, value, aRemoveFromDb);
     289             :   }
     290             : 
     291           0 :   return NS_OK;
     292             : }

Generated by: LCOV version 1.13