153 const wxString outputDir = tempDir();
163 wxUnusedVar( aError );
166 if( aUrl.EndsWith( wxString(
"acme-res-10k.kicad_sym" ) ) )
168 aResponse.
content_type = wxString(
"application/x-kicad-symbol" );
169 const std::string payload = symbolPayload(
"R" );
170 aResponse.
payload.assign( payload.begin(), payload.end() );
174 aResponse.
content_type = wxString(
"application/x-kicad-footprint" );
175 const std::string payload =
"(module \"R_0603_1608Metric\" (layer \"F.Cu\"))\n";
176 aResponse.
payload.assign( payload.begin(), payload.end() );
183 BOOST_REQUIRE( job.Import( provider(), importContext(), manifest(),
false, error ) );
185 wxFileName symbolPath( outputDir, wxString() );
186 symbolPath.AppendDir( wxString(
"symbols" ) );
187 symbolPath.SetFullName( wxString(
"testremote_device.kicad_sym" ) );
188 BOOST_CHECK( symbolPath.FileExists() );
190 wxFileName footprintPath( outputDir, wxString() );
191 footprintPath.AppendDir( wxString(
"footprints" ) );
192 footprintPath.AppendDir( wxString(
"testremote_resistor_smd.pretty" ) );
193 footprintPath.SetFullName( wxString(
"R_0603_1608Metric.kicad_mod" ) );
194 BOOST_CHECK( footprintPath.FileExists() );
201 LIB_SYMBOL* loaded = plugin->LoadSymbol( symbolPath.GetFullPath(), wxString(
"R" ) );
204 std::string(
"testremote_resistor_smd:R_0603_1608Metric" ) );
209 const wxString outputDir = tempDir();
219 wxUnusedVar( aError );
222 if( aUrl.EndsWith( wxString(
"acme-res-10k.kicad_sym" ) ) )
224 aResponse.
content_type = wxString(
"application/x-kicad-symbol" );
225 const std::string payload = symbolPayload(
"WrongName" );
226 aResponse.
payload.assign( payload.begin(), payload.end() );
230 aResponse.
content_type = wxString(
"application/x-kicad-footprint" );
231 const std::string payload =
"(module \"R_0603_1608Metric\" (layer \"F.Cu\"))\n";
232 aResponse.
payload.assign( payload.begin(), payload.end() );
239 BOOST_CHECK( !job.Import( provider(), importContext(), manifest(),
false, error ) );
240 BOOST_CHECK( !error.IsEmpty() );
245 const wxString outputDir = tempDir();
253 multiManifest.
part_id = wxString(
"acme-res-10k" );
256 const std::string symbolBlob = symbolPayload(
"R" );
257 symbolAsset.
asset_type = wxString(
"symbol" );
258 symbolAsset.
name = wxString(
"acme-res-10k.kicad_sym" );
259 symbolAsset.
content_type = wxString(
"application/x-kicad-symbol" );
260 symbolAsset.
size_bytes =
static_cast<long long>( symbolBlob.size() );
261 symbolAsset.
sha256 = sha256Hex( symbolBlob );
262 symbolAsset.
download_url = wxString(
"https://provider.example.test/downloads/acme-res-10k.kicad_sym" );
266 const std::string fpBlob0603 =
"(module \"R_0603_1608Metric\" (layer \"F.Cu\"))\n";
267 const std::string fpBlob0805 =
"(module \"R_0805_2012Metric\" (layer \"F.Cu\"))\n";
270 fpPrimary.
asset_type = wxString(
"footprint" );
271 fpPrimary.
name = wxString(
"R_0603.pretty" );
272 fpPrimary.
content_type = wxString(
"application/x-kicad-footprint" );
273 fpPrimary.
size_bytes =
static_cast<long long>( fpBlob0603.size() );
274 fpPrimary.
sha256 = sha256Hex( fpBlob0603 );
275 fpPrimary.
download_url = wxString(
"https://provider.example.test/downloads/R_0603.kicad_mod" );
277 fpPrimary.
target_name = wxString(
"R_0603_1608Metric" );
281 fpAlt.
name = wxString(
"R_0805.pretty" );
282 fpAlt.
content_type = wxString(
"application/x-kicad-footprint" );
283 fpAlt.
size_bytes =
static_cast<long long>( fpBlob0805.size() );
284 fpAlt.
sha256 = sha256Hex( fpBlob0805 );
285 fpAlt.
download_url = wxString(
"https://provider.example.test/downloads/R_0805.kicad_mod" );
287 fpAlt.
target_name = wxString(
"R_0805_2012Metric" );
291 multiManifest.
assets = { symbolAsset, fpPrimary, fpAlt };
296 wxUnusedVar( aError );
299 if( aUrl.EndsWith( wxString(
"acme-res-10k.kicad_sym" ) ) )
301 aResponse.
content_type = wxString(
"application/x-kicad-symbol" );
302 aResponse.
payload.assign( symbolBlob.begin(), symbolBlob.end() );
306 if( aUrl.EndsWith( wxString(
"R_0805.kicad_mod" ) ) )
308 aResponse.
content_type = wxString(
"application/x-kicad-footprint" );
309 aResponse.
payload.assign( fpBlob0805.begin(), fpBlob0805.end() );
313 aResponse.
content_type = wxString(
"application/x-kicad-footprint" );
314 aResponse.
payload.assign( fpBlob0603.begin(), fpBlob0603.end() );
320 BOOST_REQUIRE( job.Import( provider(), importContext(), multiManifest,
false, error ) );
322 wxFileName symbolPath( outputDir, wxString() );
323 symbolPath.AppendDir( wxString(
"symbols" ) );
324 symbolPath.SetFullName( wxString(
"testremote_device.kicad_sym" ) );
330 LIB_SYMBOL* loaded = plugin->LoadSymbol( symbolPath.GetFullPath(), wxString(
"R" ) );
334 std::string(
"testremote_resistor_smd:R_0603_1608Metric" ) );
338 if( filters.GetCount() == 1 )
339 BOOST_CHECK_EQUAL( filters[0].ToStdString(), std::string(
"R_0805_2012Metric" ) );
BOOST_CHECK_EQUAL(result, "25.4")