| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "components/update_client/update_response.h" | 5 #include "components/update_client/update_response.h" |
| 6 #include "testing/gtest/include/gtest/gtest.h" | 6 #include "testing/gtest/include/gtest/gtest.h" |
| 7 | 7 |
| 8 namespace update_client { | 8 namespace update_client { |
| 9 | 9 |
| 10 const char* kValidXml = | 10 const char* kValidXml = |
| 11 "<?xml version='1.0' encoding='UTF-8'?>" | 11 "<?xml version='1.0' encoding='UTF-8'?>" |
| 12 "<response protocol='3.0'>" | 12 "<response protocol='3.1'>" |
| 13 " <app appid='12345'>" | 13 " <app appid='12345'>" |
| 14 " <updatecheck status='ok'>" | 14 " <updatecheck status='ok'>" |
| 15 " <urls>" | 15 " <urls>" |
| 16 " <url codebase='http://example.com/'/>" | 16 " <url codebase='http://example.com/'/>" |
| 17 " <url codebasediff='http://diff.example.com/'/>" | 17 " <url codebasediff='http://diff.example.com/'/>" |
| 18 " </urls>" | 18 " </urls>" |
| 19 " <manifest version='1.2.3.4' prodversionmin='2.0.143.0'>" | 19 " <manifest version='1.2.3.4' prodversionmin='2.0.143.0'>" |
| 20 " <packages>" | 20 " <packages>" |
| 21 " <package name='extension_1_2_3_4.crx'/>" | 21 " <package name='extension_1_2_3_4.crx'/>" |
| 22 " </packages>" | 22 " </packages>" |
| 23 " </manifest>" | 23 " </manifest>" |
| 24 " </updatecheck>" | 24 " </updatecheck>" |
| 25 " </app>" | 25 " </app>" |
| 26 "</response>"; | 26 "</response>"; |
| 27 | 27 |
| 28 const char* valid_xml_with_hash = | 28 const char* valid_xml_with_hash = |
| 29 "<?xml version='1.0' encoding='UTF-8'?>" | 29 "<?xml version='1.0' encoding='UTF-8'?>" |
| 30 "<response protocol='3.0'>" | 30 "<response protocol='3.1'>" |
| 31 " <app appid='12345'>" | 31 " <app appid='12345'>" |
| 32 " <updatecheck status='ok'>" | 32 " <updatecheck status='ok'>" |
| 33 " <urls>" | 33 " <urls>" |
| 34 " <url codebase='http://example.com/'/>" | 34 " <url codebase='http://example.com/'/>" |
| 35 " </urls>" | 35 " </urls>" |
| 36 " <manifest version='1.2.3.4' prodversionmin='2.0.143.0'>" | 36 " <manifest version='1.2.3.4' prodversionmin='2.0.143.0'>" |
| 37 " <packages>" | 37 " <packages>" |
| 38 " <package name='extension_1_2_3_4.crx' hash_sha256='1234'" | 38 " <package name='extension_1_2_3_4.crx' hash_sha256='1234'" |
| 39 " hashdiff_sha256='5678'/>" | 39 " hashdiff_sha256='5678'/>" |
| 40 " </packages>" | 40 " </packages>" |
| 41 " </manifest>" | 41 " </manifest>" |
| 42 " </updatecheck>" | 42 " </updatecheck>" |
| 43 " </app>" | 43 " </app>" |
| 44 "</response>"; | 44 "</response>"; |
| 45 | 45 |
| 46 const char* valid_xml_with_invalid_sizes = | 46 const char* valid_xml_with_invalid_sizes = |
| 47 "<?xml version='1.0' encoding='UTF-8'?>" | 47 "<?xml version='1.0' encoding='UTF-8'?>" |
| 48 "<response protocol='3.0'>" | 48 "<response protocol='3.1'>" |
| 49 " <app appid='12345'>" | 49 " <app appid='12345'>" |
| 50 " <updatecheck status='ok'>" | 50 " <updatecheck status='ok'>" |
| 51 " <urls>" | 51 " <urls>" |
| 52 " <url codebase='http://example.com/'/>" | 52 " <url codebase='http://example.com/'/>" |
| 53 " </urls>" | 53 " </urls>" |
| 54 " <manifest version='1.2.3.4' prodversionmin='2.0.143.0'>" | 54 " <manifest version='1.2.3.4' prodversionmin='2.0.143.0'>" |
| 55 " <packages>" | 55 " <packages>" |
| 56 " <package name='1' size='1234'/>" | 56 " <package name='1' size='1234'/>" |
| 57 " <package name='2' size='-1234'/>" | 57 " <package name='2' size='-1234'/>" |
| 58 " <package name='3' />" | 58 " <package name='3' />" |
| 59 " <package name='4' size='-a'/>" | 59 " <package name='4' size='-a'/>" |
| 60 " <package name='5' size='-123467890123456789'/>" | 60 " <package name='5' size='-123467890123456789'/>" |
| 61 " <package name='6' size='123467890123456789'/>" | 61 " <package name='6' size='123467890123456789'/>" |
| 62 " </packages>" | 62 " </packages>" |
| 63 " </manifest>" | 63 " </manifest>" |
| 64 " </updatecheck>" | 64 " </updatecheck>" |
| 65 " </app>" | 65 " </app>" |
| 66 "</response>"; | 66 "</response>"; |
| 67 | 67 |
| 68 const char* kInvalidValidXmlMissingCodebase = | 68 const char* kInvalidValidXmlMissingCodebase = |
| 69 "<?xml version='1.0' encoding='UTF-8'?>" | 69 "<?xml version='1.0' encoding='UTF-8'?>" |
| 70 "<response protocol='3.0'>" | 70 "<response protocol='3.1'>" |
| 71 " <app appid='12345'>" | 71 " <app appid='12345'>" |
| 72 " <updatecheck status='ok'>" | 72 " <updatecheck status='ok'>" |
| 73 " <urls>" | 73 " <urls>" |
| 74 " <url codebasediff='http://diff.example.com/'/>" | 74 " <url codebasediff='http://diff.example.com/'/>" |
| 75 " </urls>" | 75 " </urls>" |
| 76 " <manifest version='1.2.3.4' prodversionmin='2.0.143.0'>" | 76 " <manifest version='1.2.3.4' prodversionmin='2.0.143.0'>" |
| 77 " <packages>" | 77 " <packages>" |
| 78 " <package namediff='extension_1_2_3_4.crx'/>" | 78 " <package namediff='extension_1_2_3_4.crx'/>" |
| 79 " </packages>" | 79 " </packages>" |
| 80 " </manifest>" | 80 " </manifest>" |
| 81 " </updatecheck>" | 81 " </updatecheck>" |
| 82 " </app>" | 82 " </app>" |
| 83 "</response>"; | 83 "</response>"; |
| 84 | 84 |
| 85 const char* kInvalidValidXmlMissingManifest = | 85 const char* kInvalidValidXmlMissingManifest = |
| 86 "<?xml version='1.0' encoding='UTF-8'?>" | 86 "<?xml version='1.0' encoding='UTF-8'?>" |
| 87 "<response protocol='3.0'>" | 87 "<response protocol='3.1'>" |
| 88 " <app appid='12345'>" | 88 " <app appid='12345'>" |
| 89 " <updatecheck status='ok'>" | 89 " <updatecheck status='ok'>" |
| 90 " <urls>" | 90 " <urls>" |
| 91 " <url codebase='http://example.com/'/>" | 91 " <url codebase='http://example.com/'/>" |
| 92 " </urls>" | 92 " </urls>" |
| 93 " </updatecheck>" | 93 " </updatecheck>" |
| 94 " </app>" | 94 " </app>" |
| 95 "</response>"; | 95 "</response>"; |
| 96 | 96 |
| 97 const char* kMissingAppId = | 97 const char* kMissingAppId = |
| 98 "<?xml version='1.0'?>" | 98 "<?xml version='1.0'?>" |
| 99 "<response protocol='3.0'>" | 99 "<response protocol='3.1'>" |
| 100 " <app>" | 100 " <app>" |
| 101 " <updatecheck codebase='http://example.com/extension_1.2.3.4.crx'" | 101 " <updatecheck codebase='http://example.com/extension_1.2.3.4.crx'" |
| 102 " version='1.2.3.4'/>" | 102 " version='1.2.3.4'/>" |
| 103 " </app>" | 103 " </app>" |
| 104 "</response>"; | 104 "</response>"; |
| 105 | 105 |
| 106 const char* kInvalidCodebase = | 106 const char* kInvalidCodebase = |
| 107 "<?xml version='1.0'?>" | 107 "<?xml version='1.0'?>" |
| 108 "<response protocol='3.0'>" | 108 "<response protocol='3.1'>" |
| 109 " <app appid='12345' status='ok'>" | 109 " <app appid='12345' status='ok'>" |
| 110 " <updatecheck codebase='example.com/extension_1.2.3.4.crx'" | 110 " <updatecheck codebase='example.com/extension_1.2.3.4.crx'" |
| 111 " version='1.2.3.4'/>" | 111 " version='1.2.3.4'/>" |
| 112 " </app>" | 112 " </app>" |
| 113 "</response>"; | 113 "</response>"; |
| 114 | 114 |
| 115 const char* kMissingVersion = | 115 const char* kMissingVersion = |
| 116 "<?xml version='1.0'?>" | 116 "<?xml version='1.0'?>" |
| 117 "<response protocol='3.0'>" | 117 "<response protocol='3.1'>" |
| 118 " <app appid='12345' status='ok'>" | 118 " <app appid='12345' status='ok'>" |
| 119 " <updatecheck codebase='http://example.com/extension_1.2.3.4.crx'/>" | 119 " <updatecheck codebase='http://example.com/extension_1.2.3.4.crx'/>" |
| 120 " </app>" | 120 " </app>" |
| 121 "</response>"; | 121 "</response>"; |
| 122 | 122 |
| 123 const char* kInvalidVersion = | 123 const char* kInvalidVersion = |
| 124 "<?xml version='1.0'?>" | 124 "<?xml version='1.0'?>" |
| 125 "<response protocol='3.0'>" | 125 "<response protocol='3.1'>" |
| 126 " <app appid='12345' status='ok'>" | 126 " <app appid='12345' status='ok'>" |
| 127 " <updatecheck codebase='http://example.com/extension_1.2.3.4.crx' " | 127 " <updatecheck codebase='http://example.com/extension_1.2.3.4.crx' " |
| 128 " version='1.2.3.a'/>" | 128 " version='1.2.3.a'/>" |
| 129 " </app>" | 129 " </app>" |
| 130 "</response>"; | 130 "</response>"; |
| 131 | 131 |
| 132 // The v3 version of the protocol is not using namespaces. However, the parser | 132 // The v3 version of the protocol is not using namespaces. However, the parser |
| 133 // must be able to parse responses that include namespaces. | 133 // must be able to parse responses that include namespaces. |
| 134 const char* kUsesNamespacePrefix = | 134 const char* kUsesNamespacePrefix = |
| 135 "<?xml version='1.0' encoding='UTF-8'?>" | 135 "<?xml version='1.0' encoding='UTF-8'?>" |
| 136 "<g:response xmlns:g='http://www.google.com/update2/response' " | 136 "<g:response xmlns:g='http://www.google.com/update2/response' " |
| 137 "protocol='3.0'>" | 137 "protocol='3.1'>" |
| 138 " <g:app appid='12345'>" | 138 " <g:app appid='12345'>" |
| 139 " <g:updatecheck status='ok'>" | 139 " <g:updatecheck status='ok'>" |
| 140 " <g:urls>" | 140 " <g:urls>" |
| 141 " <g:url codebase='http://example.com/'/>" | 141 " <g:url codebase='http://example.com/'/>" |
| 142 " </g:urls>" | 142 " </g:urls>" |
| 143 " <g:manifest version='1.2.3.4' prodversionmin='2.0.143.0'>" | 143 " <g:manifest version='1.2.3.4' prodversionmin='2.0.143.0'>" |
| 144 " <g:packages>" | 144 " <g:packages>" |
| 145 " <g:package name='extension_1_2_3_4.crx'/>" | 145 " <g:package name='extension_1_2_3_4.crx'/>" |
| 146 " </g:packages>" | 146 " </g:packages>" |
| 147 " </g:manifest>" | 147 " </g:manifest>" |
| 148 " </g:updatecheck>" | 148 " </g:updatecheck>" |
| 149 " </g:app>" | 149 " </g:app>" |
| 150 "</g:response>"; | 150 "</g:response>"; |
| 151 | 151 |
| 152 // Includes unrelated <app> tags from other xml namespaces - this should | 152 // Includes unrelated <app> tags from other xml namespaces - this should |
| 153 // not cause problems. | 153 // not cause problems. |
| 154 const char* kSimilarTagnames = | 154 const char* kSimilarTagnames = |
| 155 "<?xml version='1.0' encoding='UTF-8'?>" | 155 "<?xml version='1.0' encoding='UTF-8'?>" |
| 156 "<response xmlns:a='http://a' protocol='3.0'>" | 156 "<response xmlns:a='http://a' protocol='3.1'>" |
| 157 " <a:app appid='12345'>" | 157 " <a:app appid='12345'>" |
| 158 " <updatecheck status='ok'>" | 158 " <updatecheck status='ok'>" |
| 159 " <urls>" | 159 " <urls>" |
| 160 " <url codebase='http://example.com/'/>" | 160 " <url codebase='http://example.com/'/>" |
| 161 " </urls>" | 161 " </urls>" |
| 162 " <manifest version='1.2.3.4' prodversionmin='2.0.143.0'>" | 162 " <manifest version='1.2.3.4' prodversionmin='2.0.143.0'>" |
| 163 " <packages>" | 163 " <packages>" |
| 164 " <package name='extension_1_2_3_4.crx'/>" | 164 " <package name='extension_1_2_3_4.crx'/>" |
| 165 " </packages>" | 165 " </packages>" |
| 166 " </manifest>" | 166 " </manifest>" |
| 167 " </updatecheck>" | 167 " </updatecheck>" |
| 168 " </a:app>" | 168 " </a:app>" |
| 169 " <b:app appid='xyz' xmlns:b='http://b'>" | 169 " <b:app appid='xyz' xmlns:b='http://b'>" |
| 170 " <updatecheck status='noupdate'/>" | 170 " <updatecheck status='noupdate'/>" |
| 171 " </b:app>" | 171 " </b:app>" |
| 172 "</response>"; | 172 "</response>"; |
| 173 | 173 |
| 174 // Includes a <daystart> tag. | 174 // Includes a <daystart> tag. |
| 175 const char* kWithDaystart = | 175 const char* kWithDaystart = |
| 176 "<?xml version='1.0' encoding='UTF-8'?>" | 176 "<?xml version='1.0' encoding='UTF-8'?>" |
| 177 "<response protocol='3.0'>" | 177 "<response protocol='3.1'>" |
| 178 " <daystart elapsed_seconds='456'/>" | 178 " <daystart elapsed_seconds='456'/>" |
| 179 " <app appid='12345'>" | 179 " <app appid='12345'>" |
| 180 " <updatecheck status='ok'>" | 180 " <updatecheck status='ok'>" |
| 181 " <urls>" | 181 " <urls>" |
| 182 " <url codebase='http://example.com/'/>" | 182 " <url codebase='http://example.com/'/>" |
| 183 " </urls>" | 183 " </urls>" |
| 184 " <manifest version='1.2.3.4' prodversionmin='2.0.143.0'>" | 184 " <manifest version='1.2.3.4' prodversionmin='2.0.143.0'>" |
| 185 " <packages>" | 185 " <packages>" |
| 186 " <package name='extension_1_2_3_4.crx'/>" | 186 " <package name='extension_1_2_3_4.crx'/>" |
| 187 " </packages>" | 187 " </packages>" |
| 188 " </manifest>" | 188 " </manifest>" |
| 189 " </updatecheck>" | 189 " </updatecheck>" |
| 190 " </app>" | 190 " </app>" |
| 191 "</response>"; | 191 "</response>"; |
| 192 | 192 |
| 193 // Indicates no updates available - this should not be a parse error. | 193 // Indicates no updates available - this should not be a parse error. |
| 194 const char* kNoUpdate = | 194 const char* kNoUpdate = |
| 195 "<?xml version='1.0' encoding='UTF-8'?>" | 195 "<?xml version='1.0' encoding='UTF-8'?>" |
| 196 "<response protocol='3.0'>" | 196 "<response protocol='3.1'>" |
| 197 " <app appid='12345'>" | 197 " <app appid='12345'>" |
| 198 " <updatecheck status='noupdate'/>" | 198 " <updatecheck status='noupdate'/>" |
| 199 " </app>" | 199 " </app>" |
| 200 "</response>"; | 200 "</response>"; |
| 201 | 201 |
| 202 // Includes two <app> tags, one with an error. | 202 // Includes two <app> tags, one with an error. |
| 203 const char* kTwoAppsOneError = | 203 const char* kTwoAppsOneError = |
| 204 "<?xml version='1.0' encoding='UTF-8'?>" | 204 "<?xml version='1.0' encoding='UTF-8'?>" |
| 205 "<response protocol='3.0'>" | 205 "<response protocol='3.1'>" |
| 206 " <app appid='aaaaaaaa' status='error-unknownApplication'>" | 206 " <app appid='aaaaaaaa' status='error-unknownApplication'>" |
| 207 " <updatecheck status='error-internal'/>" | 207 " <updatecheck status='error-internal'/>" |
| 208 " </app>" | 208 " </app>" |
| 209 " <app appid='bbbbbbbb'>" | 209 " <app appid='bbbbbbbb'>" |
| 210 " <updatecheck status='ok'>" | 210 " <updatecheck status='ok'>" |
| 211 " <urls>" | 211 " <urls>" |
| 212 " <url codebase='http://example.com/'/>" | 212 " <url codebase='http://example.com/'/>" |
| 213 " </urls>" | 213 " </urls>" |
| 214 " <manifest version='1.2.3.4' prodversionmin='2.0.143.0'>" | 214 " <manifest version='1.2.3.4' prodversionmin='2.0.143.0'>" |
| 215 " <packages>" | 215 " <packages>" |
| 216 " <package name='extension_1_2_3_4.crx'/>" | 216 " <package name='extension_1_2_3_4.crx'/>" |
| 217 " </packages>" | 217 " </packages>" |
| 218 " </manifest>" | 218 " </manifest>" |
| 219 " </updatecheck>" | 219 " </updatecheck>" |
| 220 " </app>" | 220 " </app>" |
| 221 "</response>"; | 221 "</response>"; |
| 222 | 222 |
| 223 // Includes two <app> tags, both of which set the cohort. | 223 // Includes two <app> tags, both of which set the cohort. |
| 224 const char* kTwoAppsSetCohort = | 224 const char* kTwoAppsSetCohort = |
| 225 "<?xml version='1.0' encoding='UTF-8'?>" | 225 "<?xml version='1.0' encoding='UTF-8'?>" |
| 226 "<response protocol='3.0'>" | 226 "<response protocol='3.1'>" |
| 227 " <app appid='aaaaaaaa' cohort='1:2q3/'>" | 227 " <app appid='aaaaaaaa' cohort='1:2q3/'>" |
| 228 " <updatecheck status='noupdate'/>" | 228 " <updatecheck status='noupdate'/>" |
| 229 " </app>" | 229 " </app>" |
| 230 " <app appid='bbbbbbbb' cohort='1:33z@0.33' cohortname='cname'>" | 230 " <app appid='bbbbbbbb' cohort='1:33z@0.33' cohortname='cname'>" |
| 231 " <updatecheck status='ok'>" | 231 " <updatecheck status='ok'>" |
| 232 " <urls>" | 232 " <urls>" |
| 233 " <url codebase='http://example.com/'/>" | 233 " <url codebase='http://example.com/'/>" |
| 234 " </urls>" | 234 " </urls>" |
| 235 " <manifest version='1.2.3.4' prodversionmin='2.0.143.0'>" | 235 " <manifest version='1.2.3.4' prodversionmin='2.0.143.0'>" |
| 236 " <packages>" | 236 " <packages>" |
| 237 " <package name='extension_1_2_3_4.crx'/>" | 237 " <package name='extension_1_2_3_4.crx'/>" |
| 238 " </packages>" | 238 " </packages>" |
| 239 " </manifest>" | 239 " </manifest>" |
| 240 " </updatecheck>" | 240 " </updatecheck>" |
| 241 " </app>" | 241 " </app>" |
| 242 "</response>"; | 242 "</response>"; |
| 243 | 243 |
| 244 // Includes a run action for an update check with status='ok'. | 244 // Includes a run action for an update check with status='ok'. |
| 245 const char* kUpdateCheckStatusOkWithRunAction = | 245 const char* kUpdateCheckStatusOkWithRunAction = |
| 246 "<?xml version='1.0' encoding='UTF-8'?>" | 246 "<?xml version='1.0' encoding='UTF-8'?>" |
| 247 "<response protocol='3.0'>" | 247 "<response protocol='3.1'>" |
| 248 " <app appid='12345'>" | 248 " <app appid='12345'>" |
| 249 " <updatecheck status='ok'>" | 249 " <updatecheck status='ok'>" |
| 250 " <urls>" | 250 " <urls>" |
| 251 " <url codebase='http://example.com/'/>" | 251 " <url codebase='http://example.com/'/>" |
| 252 " <url codebasediff='http://diff.example.com/'/>" | 252 " <url codebasediff='http://diff.example.com/'/>" |
| 253 " </urls>" | 253 " </urls>" |
| 254 " <manifest version='1.2.3.4' prodversionmin='2.0.143.0'>" | 254 " <manifest version='1.2.3.4' prodversionmin='2.0.143.0'>" |
| 255 " <packages>" | 255 " <packages>" |
| 256 " <package name='extension_1_2_3_4.crx'/>" | 256 " <package name='extension_1_2_3_4.crx'/>" |
| 257 " </packages>" | 257 " </packages>" |
| 258 " </manifest>" | 258 " </manifest>" |
| 259 " <actions>" | 259 " <actions>" |
| 260 " <action run='this'/>" | 260 " <action run='this'/>" |
| 261 " </actions>" | 261 " </actions>" |
| 262 " </updatecheck>" | 262 " </updatecheck>" |
| 263 " </app>" | 263 " </app>" |
| 264 "</response>"; | 264 "</response>"; |
| 265 | 265 |
| 266 // Includes a run action for an update check with status='noupdate'. | 266 // Includes a run action for an update check with status='noupdate'. |
| 267 const char* kUpdateCheckStatusNoUpdateWithRunAction = | 267 const char* kUpdateCheckStatusNoUpdateWithRunAction = |
| 268 "<?xml version='1.0' encoding='UTF-8'?>" | 268 "<?xml version='1.0' encoding='UTF-8'?>" |
| 269 "<response protocol='3.0'>" | 269 "<response protocol='3.1'>" |
| 270 " <app appid='12345'>" | 270 " <app appid='12345'>" |
| 271 " <updatecheck status='noupdate'>" | 271 " <updatecheck status='noupdate'>" |
| 272 " <actions>" | 272 " <actions>" |
| 273 " <action run='this'/>" | 273 " <action run='this'/>" |
| 274 " </actions>" | 274 " </actions>" |
| 275 " </updatecheck>" | 275 " </updatecheck>" |
| 276 " </app>" | 276 " </app>" |
| 277 "</response>"; | 277 "</response>"; |
| 278 | 278 |
| 279 // Includes a run action for an update check with status='error'. | 279 // Includes a run action for an update check with status='error'. |
| 280 const char* kUpdateCheckStatusErrorWithRunAction = | 280 const char* kUpdateCheckStatusErrorWithRunAction = |
| 281 "<?xml version='1.0' encoding='UTF-8'?>" | 281 "<?xml version='1.0' encoding='UTF-8'?>" |
| 282 "<response protocol='3.0'>" | 282 "<response protocol='3.1'>" |
| 283 " <app appid='12345' status='ok'>" | 283 " <app appid='12345' status='ok'>" |
| 284 " <updatecheck status='error-osnotsupported'>" | 284 " <updatecheck status='error-osnotsupported'>" |
| 285 " <actions>" | 285 " <actions>" |
| 286 " <action run='this'/>" | 286 " <action run='this'/>" |
| 287 " </actions>" | 287 " </actions>" |
| 288 " </updatecheck>" | 288 " </updatecheck>" |
| 289 " </app>" | 289 " </app>" |
| 290 "</response>"; | 290 "</response>"; |
| 291 | 291 |
| 292 TEST(ComponentUpdaterUpdateResponseTest, TestParser) { | 292 TEST(ComponentUpdaterUpdateResponseTest, TestParser) { |
| (...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 425 EXPECT_STREQ("noupdate", firstResult->status.c_str()); | 425 EXPECT_STREQ("noupdate", firstResult->status.c_str()); |
| 426 EXPECT_EQ(firstResult->extension_id, "12345"); | 426 EXPECT_EQ(firstResult->extension_id, "12345"); |
| 427 EXPECT_STREQ("this", firstResult->action_run.c_str()); | 427 EXPECT_STREQ("this", firstResult->action_run.c_str()); |
| 428 | 428 |
| 429 EXPECT_TRUE(parser.Parse(kUpdateCheckStatusErrorWithRunAction)); | 429 EXPECT_TRUE(parser.Parse(kUpdateCheckStatusErrorWithRunAction)); |
| 430 EXPECT_FALSE(parser.errors().empty()); | 430 EXPECT_FALSE(parser.errors().empty()); |
| 431 EXPECT_TRUE(parser.results().list.empty()); | 431 EXPECT_TRUE(parser.results().list.empty()); |
| 432 } | 432 } |
| 433 | 433 |
| 434 } // namespace update_client | 434 } // namespace update_client |
| OLD | NEW |